home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / PRG / PowerLisp 2.01 FAT Folder.sit / PowerLisp 2.01 FAT Folder / PowerLisp 2.01 ƒ / PowerLisp 2.0 Doc (CG) (.txt) next >
Common Ground  |  1996-05-28  |  179KB  |  3,080 lines

  1. 4CGDC
  2. ;{{{{
  3. <ssssss
  4. Gcccc
  5. Hcccc
  6. Icccccc
  7. Jcccc11
  8. Kcc11
  9. Lcc11cc
  10. Mcc1111
  11. Ncc11
  12. ORRRRRR
  13. QBBBBBB
  14. _11cc
  15. `11cc
  16. a11cccc
  17. b11cc11
  18. c1111
  19. d1111cc
  20. e111111
  21. f1111
  22. i!!!!!!
  23. I<<OMOQJOJOJ:+#
  24. eeQeQQeQMJQ
  25. QOOI:0+
  26. QOIOQQeQOOII410
  27. IOJIJ
  28. QMOMOO4:
  29. QeQMIQeQQOOI
  30. QJQeeMOJOIQQJ<
  31. QeOQQJQJQO<
  32. MQeMe
  33. QeQQMQMOO
  34. JQOJ0
  35. OQOQQ
  36. ##$<z::0E:H
  37. /#zz<<HE0
  38. 0:E<H<HH
  39. <IF<I
  40. EzHE:IHzz<E0#
  41. HE$**
  42. MOQOJQJQJOOJOQQMOJIJI<<J<J
  43. 011$$
  44. +I1:<Q101$$1
  45. +$1<1
  46. 0E:00/DE
  47. HE//DE
  48. aIOIIaO
  49. <::0EIOeQefe
  50. Q"eQQeeO<<:<<1<::0
  51. E::OJJOJOO
  52. :<IIJIJ1<:<:IJ
  53. 1:1<<1<
  54. <I4<J
  55. $0<I$ae
  56. dEEH`czzH#$H`d
  57. +$11:
  58. 01:10$
  59. J41Q5<1
  60. :QMM1
  61. #I40<:+
  62. ##:OOQeO:
  63. ::<<II:0
  64. :<JI<<:<OQOQQI:
  65. ,OiieebMebMQbMOJQJJOJbOJJOJQQJJ
  66. eeJ5<J<
  67. ,$$11$1+
  68. fifieieieieeMQNQQee
  69. ikkeMQQMQJQJMJJMJQM4IIJJQJQeJO
  70. QQeMQMMJMJOJIJ<2<1:
  71. 0114IIekM<<IQeJQ510+
  72. 0M11$
  73. 0101$aiQO4
  74. :<<:1$
  75. :<IOQ
  76. eQJ<I:
  77. JQQMQI<J<<I<OQQ
  78. :0:<<
  79. JOJII<I
  80. $1$$01010
  81. eMQMOJQ
  82. QkiiMeiee
  83. ikeQikQJQOe
  84. i    feQQJQeQJI
  85. OJ1IM1<eeQJQQMOJJOMJJIJIJMJMJ
  86. JI<<IJQJOJ::QkQeM10$110
  87. QO4I1
  88. $011:J1:1:J<<
  89. #0::10::<IQOQQ
  90. Q    eQQJ<:1::<
  91. 1:<OQ
  92. JJOJQQMOOJOJOJOOIOI
  93. kfieMQMQeeQ
  94. iikkiee
  95. iikieiieeQOeiee
  96. ieeieeiMeiiQieM
  97. feief
  98. J<QkikiifeQMeJOiki
  99. fiefeiik
  100. kieeiM<<IJ4<JQ
  101. 4<<J<5<<Jei
  102. $11$1<1IQJ<
  103. 011:0
  104. +$110
  105. E::<E
  106. ikkiki
  107. kkifeikQQ
  108. Meiikikkikik
  109. kifeeiikeeiiki
  110. QQMQeQeik
  111. ikkikkikiik
  112. kiikikiikQOiiMeeieM
  113. MeQOJMQeQQefeiifeef
  114. QQOJOJJ<J
  115. IIJIIJOOJ<1:OJOJOQ
  116. O<11$1+01$+
  117. $00::1<:<
  118. ieieMikieikeMQQei
  119. ikikkiki
  120. ieeii
  121. ikikkiki
  122. iOQiQMeie
  123. EQieQMOeikkiikiiki
  124. iieii
  125. ikieei
  126. ieeieeJIQQJOOQ
  127. Q    eiifeMeQQe
  128. OOJQQbMQQ
  129. ikkik
  130. iekeikiik
  131. eiiki
  132. kikikiikik
  133. i    kiikikkMOi
  134. z    <QeMQOekii
  135. QMJOQJQ
  136. ieikiikf
  137. ikikkikki
  138. ikiki
  139. iikiikkMOQikkikki
  140. kkiikki
  141. iieii
  142. ikkikkii
  143. kikikikik
  144. kikiQiiefei
  145. <QQeMQe
  146. ikikiee
  147. iieieikikik
  148. ikikkikkiki
  149. ieQikkikikki
  150. ikkiki
  151. k    ieekiiki
  152. ikikikkikkiki
  153. kiikik
  154. kikki
  155. ikikiik
  156. fkeMeii
  157. <QQMIQiieie
  158. ikikiki
  159. iMOQMQ
  160. ikiiee
  161. ikikk
  162. ikiiki
  163. ikikiikikikikiieik
  164. kikikikikkikki
  165. iikik
  166. kiikkiiki
  167. ikikikki
  168. ikkikik
  169. <OJIIQi
  170. ieieie
  171. k    iikikkikik
  172. Qeiki
  173. iikiikikikeMOOQ
  174. c`H/#
  175. ieQQekiieiklkk
  176. kkikkikki
  177. ikiiki
  178. ikikik
  179. kikki
  180. iikkik
  181. iikkikk
  182. ikkikiikkiikik
  183. kikikiiki
  184. ikikikk
  185. ikikkikik
  186. kikMMQii
  187. kkikei
  188. ikkeil
  189. ikiikk
  190. iMOJQJ
  191. eQeiiMikki
  192. iikkikki
  193. kkiikikikikikiikkikk
  194. i2kiikikkikkiikkiikiikkikikikkiikkiikikiikiikiikikikk
  195. ikiikikikikik
  196. i    kkikiieiik
  197. kiiMQei
  198. <JIIO
  199. kkieiikikkii
  200. ikkikkikki
  201. ikikieJ
  202. $aQQeeQeieei
  203. ikkii
  204. ikikkikkikikiki
  205. ikiiki
  206. ikkikki
  207. iikikikik
  208. kikikii
  209. ikiki
  210. kikikki
  211. ikkiik
  212. z    OIOJIeieie
  213. ijiMQM
  214. $<QQeeOiiei
  215. kikkiki
  216. ikiki
  217. iikiikkikikkikki
  218. ikikik
  219. kikikikikiki
  220. ieiikikikikikiikkikki
  221. kikikikikki
  222. ikikik
  223. kiikik
  224. kikji
  225. ikkikiikikiikikki
  226. ikikeMQO
  227.     0aOdQeQiee
  228. ikikii
  229. ikikki
  230. ikiikkiki
  231. ikikkii
  232. iikikikiikikikikiik
  233. ikkikkiikkiikikiki
  234. ikikiki
  235. ikiikiikk
  236. kiikik
  237. ikiikikikikkik
  238. kiieiei
  239. IOOeieif
  240. kiikkikikikkikikkikki
  241. iikikkikiki
  242. ikkikkiikikikiki
  243. ikikikki
  244. ikikikiikik
  245. kkikikiikikkiki
  246. ikikii
  247. ikikiikkikki
  248. kkikikkikikikiikiik
  249. i    kikkiRQiM
  250. IJOeiiM
  251. ikikikii
  252. ikkiiki
  253. ikfQJM
  254. 1IQeeieeMi
  255. ikkiki
  256. iikki
  257. kkiki
  258. ikkikk
  259. ikikkikii
  260. ikikikikikkikikki
  261. ikikikki
  262. ikikkiki
  263. ikkikkikikikikikiikiki
  264. ikkik
  265. iikiikkikikihikkihik
  266. kikik
  267. ikkikkikiikiiki
  268. k    ikkikkikki
  269. iiei5
  270. IOQQie
  271. kikkikkikkikk
  272. ikkikikki
  273. $010:Qe
  274. keeikki
  275. ikikkikikki
  276. ikkiki
  277. ikiik
  278. kikkikikikkik
  279. kiikiikikiikkikkii
  280. kkikikkikikk
  281. kikikkiki
  282. ikkiikikikkikiikkeiiM
  283. #0EHHzOOMQ
  284. kkikkiikikkikikikikkiki
  285. iikkiikki
  286. k    iikkiki
  287. k    iikkikikki
  288. iikkiki
  289. ikkikiki
  290. ikikikkii
  291. ikkikki
  292. ikkikki
  293. k    iki
  294. kikiki
  295. ikikkikkiikki
  296. ikikki
  297. i    eMOQJJ1
  298. +10OQeikiikkikikiki
  299. ikieQ
  300. 11JQiki
  301. k    ikkikikiki
  302. iikkikik
  303. ikikkik
  304. iikik
  305. kikkii
  306. ikikik
  307. ikkikikikikikiikkikik
  308. kikkikikikkiki
  309. ikikkikkik
  310. ikkikki
  311. ikikki
  312. ikiikikkikikiki
  313. 0<OQieQekikiikikkikikkii
  314. ikkikki
  315. iezaH<$#
  316. $1<Jeeieii
  317. ikkiieeieiki
  318. ikkii
  319. ikikkiQQIOQ
  320. eOQQe
  321. k#ikikikkikikikikikkikkiikikikiieiieik
  322. kikii
  323. k    ikkikkikki
  324. iikikikki
  325. ikiikiki
  326. ikkikik
  327. eekeeQee
  328. eQ<<:0:<I1
  329. kiikiikikiikkikikikiki
  330. ikkikikikiikkikkikki
  331. $1IJeef
  332. ikkikikkiki
  333. Q:0:OQQeiQ<:<
  334. Qiikkikikkiki
  335. k    ikikkikiki
  336. k$MIIeiikikkiki40
  337. <OOikiJ41OQikke41IQik
  338. eikikk
  339. kkikikikkikikikkikki
  340. iikikkiikiikkikk
  341. e4JQeJIJOeieeQ4
  342. ikikkikkikikki
  343. ikkikki
  344. ikikkik4
  345. $$::OQe
  346. $<OQe4:#$$1<<JQei
  347. kiMOOQQJOe
  348. +<JIOQ
  349. $0IOOQei4OeMJeiik
  350. kkiik
  351. kikiik
  352. kiikiQOQeekike
  353. ikikii
  354. k    ikikikiiki
  355. O:<<Qie
  356. eeJI4
  357. I<IQJIJI<<Ie
  358. ikkikki
  359. k    ikikikikki
  360. k"ikM1$<1
  361. #$::0$:IOeJOie
  362. kikikikikki
  363. #$1<I4+
  364. 0:1:1<OQQeeQQeeiieie
  365. e+OIOQOeeiieeieeM
  366. $14<41$
  367. $1I4<JIIJIJIJOQOee
  368. ikkikiik
  369. i&4:<IOOikiOIJOOekiiIJOQeikikikiikikikiki
  370. ikikikkik
  371. kkikM41
  372. 0QikM
  373. :ekiM1
  374. <{kikiif
  375. eiQeQ
  376. MQQJIIJ
  377. MQMeQiie
  378. Q:0:<{
  379. i:eII4OeikkikikkikikiikikiikikikkiikkiikiikkMJMMQQe<
  380. kikikkiki
  381. 0011$0IOeJ<1<1IO4<
  382. J::10
  383. :eiQJO:1$
  384. <<JQIOO411::1<<I
  385. QeQQeeie
  386. eQQeeOQe
  387. +<IJOe4
  388. <<JOOQi10IJOeikikikkikikikikik
  389. kikie
  390. i?eiQOeiikkO
  391. +OeO1
  392. E{M41
  393. 0kkikQQMI<<1
  394. 0:<<::OQ:
  395. #$$#E
  396. *{kM0
  397. #IikiJ
  398. 0Okikikkii
  399. ikkikik
  400. kkiikikikkik
  401. *QMQ4
  402. OeeM1
  403. #ekkikiki
  404. ikikikikkikki
  405. 010$$1IJI4:1
  406. 00:IJOQMeQ5IJ<411
  407. 0:1IO4JO1
  408. 01141:IMII4<<IQeOJIO<4II414IIOQJQ<
  409. 01IOOI
  410. 0<IJQ1
  411. :4OeOQ
  412. e6OQeeiieikM
  413. {MII1:I141
  414. $Oe4:
  415. #akik
  416. iQIekk
  417. i'kiikiifO1
  418. FQei10
  419. Eii:0
  420. kkikik
  421. <<4:$+
  422. #0:<41I
  423. 01:F<JOIO11<<:<<JJOeiieM411<11I4141
  424. #+014J4
  425. :<:11::<OeeOQOQQi
  426. eQQI4<1:4<IIQO{Q
  427. #$<OOdOQe:
  428. +$:eiieQM
  429. Q9eieQII
  430. $OeeQeeOQOQeO4
  431. +:10400#
  432. +0::1
  433. #0$:10
  434. $<QO4
  435. $0<JOOJIOJ4
  436. i    f5:1
  437. :1144::1:<J<1:
  438. :IIOQeeM41
  439. 0<$1:1:1
  440. I<I<H<Id
  441. QQeeQ
  442. 010#0
  443. $+$#$
  444. 1<IOJeMIO4+0OO1$
  445. :1$0:IMQeeMb
  446. 1O1$1$0
  447. $11IOJQOIQ4
  448. #O<$+$
  449. 1414:1IJ4
  450. +0:JI1<41
  451. 0<OQieie
  452. :J<<1
  453. $1I<41::
  454. +:JeieJI1<JIJQJ1
  455. *II<0+$
  456. +<J4FOOQJ1::414<e
  457. QJ11<::I
  458. QMOO4
  459. #FOIJO:
  460. #0:<e1
  461. $+1IQeeJ<O1
  462. $<ieeQMJQeeiieifQ
  463. QO<0$00
  464. EO<:$
  465. #0::<<
  466. ee40:<::
  467. Q*JQJOJJOJO4
  468. 0IIO40J
  469. +:I<1
  470. :<JOQ
  471. QQOI:1
  472. :<OQO
  473. OQQO41$
  474. 0:0$#0
  475. 00:OQO
  476. $0010
  477. <1+OQeQee
  478. eieieefeiifieM10$
  479. <::$$
  480. +I<JJQMOQQJOJ:1$
  481. :11:1:1
  482. $0:0$$0$$:II<OI<:##
  483. :$#+0
  484. +OeQeM
  485. ++:1<OQe
  486. e8feefeQeebQbQQbeeMI::IJI
  487. +11$+
  488. IQQJQMOJOJOO
  489. MeeQQO
  490. IJ<1IJ
  491. $0<QQI4
  492. 0QeifiiM
  493. #$#$$
  494. ##$$<O
  495. iikQQiikMQe
  496. IOLOQ
  497. #0FeeMJ<
  498. $<fO4
  499. $:IeM<
  500. II<I<I<
  501. $0##$00
  502. 1<O1:4IJJe4
  503. fieJ1
  504. *QieiM
  505. JII<1<<1<11
  506. kiikii
  507. eieiiei
  508. bQOJOJQOJOOJJIJII1
  509. kikiikiikki
  510. k    ikikkikiki
  511. kkieiefifei
  512. MQJQQJMJOMJJ<4::110+00:1<I2<
  513. 011$1$1
  514. #+11<FOQQ5$:eeQ:
  515. ikiikkikkikki
  516. ikkikikkiikikikk
  517. ieiei
  518. 0aeii
  519. MQQMfQQfbMQ5:eQ
  520. IJ<<FI1:JOQQeQM
  521. eQQ<<1:OOQQJ
  522. ikiiki
  523. ikkik
  524. kikiee
  525. eieiee
  526. eeMQQM
  527. MQQMMOMQM4:eiieie
  528. fieQJQee
  529. eie4<110<ee
  530. JOQQbQMbMQQ
  531. ikiki
  532. ikkiieeiikiikifikk
  533. fiifef
  534. QQMb5:
  535. J<<IQ:Oeiie
  536. ieOI<1$
  537. #0:<IQeeMeeMQ
  538. k6ikkikikikkikkikikikkikieikkikkikikiikikikiiM:
  539. M<<iikii
  540. ikikikiki
  541. eQefQif
  542. eiieQeeQ
  543. $aeifefeeM
  544. fifie
  545. kikikiki
  546. k'ikkieikiikiikiikkikikieI0
  547. :eiikiki
  548. fQe5F
  549. ikkikik
  550. eeiikiiQ
  551. Qefeief
  552. kifkik
  553. kiiO:
  554. fifef
  555. ikkiikikikikkikkikk
  556. kkiki
  557. ikikkiikikie41
  558. 0Qiikikiki
  559. ieM4Iiki
  560. k    ikikikikki
  561. ikkei
  562. iikikikkiee
  563. kkiJQ
  564. Qeeiki
  565. k"iiM<0
  566. kiikikkik
  567. eekkikki
  568. ikkikkikkikkik
  569. ikkikkikikikikii
  570. ikkiki
  571. k%eikiikikkikkikiieJ:1:$1$+
  572. +Qiiki
  573. kkikki
  574. ikkikikikki
  575. ikiik
  576. ikiik
  577. kikie
  578. Qeeikkikkikikikikik
  579. kiikikfikkiie
  580. ikkikii
  581. ikkikiieO<:1$0$
  582. +QQikii
  583. ikkik
  584. iikkiikikkikkikiieeiiki
  585. iieJ141:10
  586. kkikikikiikkifkeiki
  587. ikkikki
  588. ikikiikki
  589. ikkikik
  590. k7ikikkiikkikiikikkiieJ5<401
  591. :Qeeiki
  592. ii5Iki
  593. ikikki
  594. k    ikkiikikii
  595. kiiki
  596. ikkiieJ4I<1101+$
  597. Iiikikikkikikkikk
  598. ikikkikikki
  599. iikikiik
  600. 11+$$
  601. :Qeeikikki
  602. ikkMI
  603. ikiki
  604. ikkii
  605. ieeii
  606. #<eikikikikkikik
  607. ikikikkikkikki
  608. ikiik
  609. kikikikk
  610. iieJJ
  611. 1<OOQQ
  612. QMJ4<1
  613. <Qeei
  614. ikMIki
  615. ikkikii
  616. ikiki
  617. 5101011
  618. Ieiikikiki
  619. ikikiikiiki
  620. ikikk
  621. kiikikk
  622. iikki
  623. ifiiMOI5:
  624. e    ieQQMQMJ1
  625. MOkkii
  626. ikikii
  627. ikkiki
  628. kikkiki
  629. k    iee5<15<<4
  630. :100$$
  631. +Oeiikkikikiikkiikki
  632. iikik
  633. kkikkikiikiik
  634. ikikiieQOJI<<:<O
  635. QeiiJQ
  636. JeMIJOQeeJ
  637. 0OQei
  638. ikikki
  639. iieeQ<1<JIJ1:411414
  640. +eeiki
  641. ikkikikk
  642. kikiik
  643. ikiekkikkikiieMJOOJIJJeiefef
  644. 4<<OQQMQJ:
  645. QMJOeeJ1
  646. <Qeiiki
  647. k    iikikikiki
  648. iieeM41
  649. <4<11<4I
  650. 4<1:0
  651. <eeikikikikki
  652. ikikki
  653. ikikiik
  654. kkikk
  655. eQQMOOQeieeQeieeJ1:1
  656. +<OeieJIQeM4
  657. +OQeii
  658. kikikkMOkki
  659. ikkiki
  660. iikikikkikikikikki
  661. ikkiif
  662. iieeMII
  663. 5IIJQMQOOJI41
  664. 41#::
  665. kkiikik
  666. kikiikikikieikkik
  667. eQeeQeiieie
  668. 0<O1<MIeeM
  669. ikkikkikiiki
  670. ikkiikki
  671. iieQJIJIJIJ5IIJ
  672. J4JMeie4
  673. 0::<1$
  674. 0QO11:1I41
  675. :eeikiikiki
  676. ikkiki
  677. ikiikii
  678. eieie
  679. eMQiieiieif4
  680. $OeJIee4
  681. :Qeeikkik
  682. kiNOkki
  683. ikkikikikikikikkikki
  684. iieeQJII<
  685. +<OOI411I4
  686. kkikk
  687. +IeMIQf4
  688. ikiki
  689. eMIOI4JJOMeeMQe4OQ41
  690. :4IJ1
  691. 1eeiki
  692. ikkiki
  693. M1<Q1
  694. <eeJQiM
  695. <QeeikikikkeQ
  696. ikkikk
  697. ieeQOJ
  698. OeeMJeii1
  699. :O4<O
  700. $+Oeeikikkiki
  701. ikkik
  702. kikikikki
  703. +<O4OeM1
  704. ikiieMOOJOJMeeQQiiM<O
  705. 1Q54J4
  706. kikiM
  707. :JQi51
  708. kikMQ
  709. ikkik
  710. kkiki
  711. iieeQJ
  712. O10IO11
  713. :QOIJ4
  714. $1Qeii
  715. ikkiikiikkiki
  716. ikiiOk
  717. kkikeiMQOQQeiMQiiM1
  718. 0JQOM4
  719. ikkiki
  720. kikikikikJ
  721. FiMQi51
  722. ikiieQQeQiiei501
  723. 0JO1<ieieii
  724. ikkikkikikiie4
  725. OiQee41FQee
  726. kkiki
  727. iieiiM
  728. &OMQQO
  729. ikikk
  730. ikkikkik
  731. +eeMiM1:Qee
  732. ikikk
  733. iieekie
  734. <eJeJQ
  735. kkiki
  736. i    kikik8
  737. :efeiMJ
  738. kieei4
  739. :iOOeMQeeiikki
  740. ikiie
  741. 0IQieei
  742. fikiik
  743. QMJeOQee
  744. kikkikki
  745. 0eiiekMMJQQieiiQ
  746. k    ikkik
  747. jkiReiikiikikkieQeM:#
  748. :ieeMQ
  749. ikikie
  750. eQMMQMOeie
  751. ikkikkieeikik
  752. M4<QQO
  753. ikkikik
  754. :Oiie
  755. MJQQJO{ii
  756. ikikk
  757. ekkikiM$
  758. 0FI4I:
  759. IeMQQeii
  760. ikkikki
  761. +<eiieQi
  762. JOeeii
  763. ikikki
  764. 41<Oe
  765. aeeM<Oiki
  766. iikkiik5
  767. 11OifieefeQQee
  768. ikikki
  769. iikiQ<O
  770. +:Oe4
  771. :QieJe
  772. kklkk
  773. ikkikk
  774. eiQQe
  775. 1QeiOe
  776. ikikikik
  777. +$<aO
  778. :<iiMQ
  779. ikikii
  780. kikii
  781. :kOeii
  782. Fikikkikikki
  783. iikieeiM0
  784. $+0IQO
  785. kikikki
  786. ikikiikikikM
  787. +{kkikikkiki
  788. #0EdO
  789. +eeiiki
  790. ikkikikk
  791. #$EIQ
  792. Qkiikkikki
  793. kikkikikk
  794. eeieiO
  795. $+aQ4
  796. akkiikkiki
  797. ikkikk
  798. kiiO:
  799. iQeeM
  800. ikkikkiik
  801. iQeei:
  802. #:Od<
  803. #Qkkikki
  804. ikikiki4
  805. <OQik
  806. $:aOO
  807. ?iiki
  808. ikikk
  809. #+<OQ
  810. Qkiikikki
  811. k    ikkiikikM
  812. ieQQeM
  813. $<aO4
  814. ^kikikki
  815. ikiikM
  816. +0aOQ
  817. dkiki
  818. ikikiki
  819. iQaQQi:
  820.     +{ikikikki
  821. ikkikiih
  822. ikQOaQe4
  823. *<aQ:
  824. akiki
  825. ikkikiik4
  826. QaQQeQ
  827. $:Ia4
  828. #ekiiki
  829. ikikikkikkikiki
  830. k    ikiikM
  831. kkiieI
  832. $+`OQ
  833. Okkikki
  834. kiikkiki
  835. ikikkikkii
  836. ieOdQQe4
  837. :11:1
  838. kikkikii
  839. iikiih
  840. ieOOQQiI
  841. ::<4:1
  842. ikkii
  843. kikik
  844. kikki
  845. kiikiikikikkik
  846. lkklkk
  847. kkiiOaOQeJ
  848. kkikikkik
  849. ikkiikikk
  850. ikikkik
  851. kiikik
  852. iiQOQeQQ$
  853. ikiki
  854. kkiki
  855. kkikik
  856. kkieadQQi
  857. 0Okiki
  858. ikkik
  859. iieOOQQe4
  860. ikkikiki
  861. 1Fiki
  862. iikikkikikikiikiiki
  863. kikkik
  864. liieOdQQeM
  865. kiiki
  866. ikikikkiikki
  867. ikikik8
  868. kkikki
  869. iikiikiik
  870. iiOOQOQe
  871. ikkiikii
  872. k    ikiM
  873. iieOaIaee
  874. akiikk
  875. ikkikk
  876. ikikkik
  877. kkikk
  878. kikiki
  879. iikkik
  880. iiO<<QQe:
  881. <ikiikkikki
  882. Qkiikk
  883. k"ikik
  884. kkiiOIaaOe4
  885. *EIO<
  886. kikki
  887. ikikkik
  888. ikikik8
  889. ieOaIIdeM
  890. Ekkikiiki
  891. ikkikikM
  892. k    ieeII<QOQ
  893. Qkiikikki
  894. ikikkiikiki
  895. iieIIaOOQ4
  896. *HaI4
  897. k    ikikkikiki
  898. iikiij
  899. xkiikik
  900. kiikiikkii<<aOaOI
  901. kiiki
  902. iikikiik
  903. ieiQ<<aOdO
  904. #@IaO#
  905. $iikiki
  906. kikki
  907. OH<aOQ
  908. <kiikkiki
  909. ikikiikikiN
  910. kieia
  911. ##+<aO4
  912. kikii
  913. ieeO<`IaO8
  914. #EOOQ
  915. #<ikiiki
  916. ikieiOE<<aOQ
  917. #$:IOO:
  918. $$1O$
  919. Eiiki
  920. kkikk
  921. ikiik4
  922. k$eie<E<aOe
  923. *<OO<
  924. kikki
  925. iiee<E<IaQ
  926. ikkikik
  927. k(giiIEHaOe4
  928. $:aOQ
  929. +0IOQO
  930. #$1<4
  931. biiki
  932. ikikikM
  933. ieiOE<aQQM$
  934. ikkikikiie
  935. #$EQOQ
  936. eQQI`aOQe<
  937. FOOQ4
  938. eQe<<OOQQO
  939. $0IOQM
  940. ikikkikikik8
  941. iOeOaO
  942. 0IOOQ
  943. iaQQIdOQQe
  944. +$FQOe<
  945. %iikiki
  946. ikikiih
  947. iOQQaO
  948. +:OOQJ
  949. akiki
  950. iOQeI
  951. 0FQOQ
  952. $$1::
  953. <iikiki
  954. k$QdeOaQaQQe
  955. +$<OQQ5
  956. k%QOQQOaOQQe
  957. $:QOOQ
  958. kkiki
  959. ikiik
  960. iaeO<a
  961. $1IOQQ
  962. ikikik
  963. iOeQHO
  964. $1<QOQO1
  965. $10:4
  966. kkiki
  967. ikiik5
  968. iQQeOOa
  969. $0FOQQO
  970. Qkkiki
  971. ikikkM
  972. QQiO<QOQQe
  973. +:IOOM
  974. kikki
  975. QOiO<OQQee4
  976. +IQQe1
  977. Okkikiki
  978. ikikki
  979. ikiik
  980. QQ{e:a
  981. $+<OOQI
  982. kk|kk
  983. eOiO<a
  984. $:OOQQ
  985. ikikkiif
  986. iQeQ<aO
  987. 01<OOQ
  988. Qkikikkikkik
  989. k    ikk
  990. ieeiIa
  991. $+<OOQQ
  992. +01<<
  993. *ekiiki
  994. ikkiiki
  995. QQeQM
  996. +0:OOQQ
  997. Fiikikiikikiki
  998. k    iki
  999. ikkik4
  1000. #:II4
  1001. #1IJ5
  1002. eQeQOQOQQee#
  1003. $1aOOQ
  1004. $1:I1
  1005. akiikkikk
  1006. kiQiQOO
  1007. 0<QOQ4
  1008. *eikiikkikiki
  1009. kiQeeaOQQeQe1
  1010. +<OOQM
  1011. +$0:J
  1012.     +eiikkikki
  1013. ikkikk
  1014. #$:OOQe:
  1015. 011I4
  1016. Ekikikikiki
  1017. {~{z{{z{
  1018. +0IOOQ4
  1019. akiki
  1020. yvyvvz
  1021. +0FOQOJ
  1022. +01I:
  1023. ekikiiki
  1024. +0::O
  1025. Eiiki
  1026. vyvyv
  1027. IaQOQeeI
  1028. akikkiki
  1029. $01:O1
  1030. #{iiki
  1031. yzkkyzzyz{kk{yzzyzz
  1032. yzzyzkk{zyvvyz{
  1033. yzkzyvvi
  1034. yzyzy
  1035. {zyvvyz{
  1036. yzkzyvvyz
  1037. QaOQe
  1038. $FOQO5
  1039. +01<4
  1040. +kkikki
  1041. k|kk|kk
  1042. Q)ee4
  1043. $+0OOQQ
  1044. $1:FI
  1045. aiikikikkiki
  1046. $+<QOJ
  1047. ikik4
  1048. yzvuu
  1049. iQeeQ
  1050. 01:<O
  1051. +101<<0
  1052. vzk~i
  1053. v{ikkz
  1054. OOQOQ
  1055. +0:IOI
  1056. +$01<I:
  1057. <iQHa{iIa
  1058. e9QQOQQeQe:
  1059. +0<<4+
  1060. +0#@II1
  1061. +:1<I
  1062. EDCEaEDE`aDD`a`D
  1063. vvz{{
  1064. eQeQaO
  1065. $1:F<
  1066. CDCDC
  1067. ikik4
  1068. '$$1:O<
  1069. u    zz{z{z{}{z
  1070. yikky
  1071. EII$a
  1072. $1:<I
  1073. ¥D_¥G]
  1074. iikkiyyky
  1075. vz{{~{{k
  1076. kkizziik
  1077. +<:aeO
  1078. +01:I3
  1079. +{iikk{
  1080. ~i~ii~i
  1081. OIOQeQQeO
  1082. $+01<I
  1083. :{kiikikkikkikk
  1084. QeiQa
  1085. *:OOQ:
  1086. ##0:<I
  1087. eQeeaO
  1088. $0<OQQO
  1089. +:1<4
  1090. $eieOJ<:<IIJ1
  1091. {zzyzzi
  1092. iz{z{z{
  1093. izzyzz{
  1094. {z{z{{
  1095. {z{{~{{~{{~{k{z{z{
  1096. i{zzyzz~
  1097. }{zyzz
  1098. #+:1OOQM
  1099. +$1:<I
  1100. +1I0#
  1101. +iiki
  1102. Q#eQeM
  1103. $+0:OQOQ<
  1104. $$1:O:
  1105. $1FeOI0
  1106. 11JQeQOI5I4<:
  1107. eeiQOO
  1108. 0:OOQQI
  1109. #$$1:I4
  1110. %ekki
  1111. $101$1<<11
  1112. <JeeJIJ4J40
  1113. QaQQe
  1114. #+:FOOQQ
  1115. $1:FO
  1116. #1010
  1117. $JeQJJIJJ:
  1118. ieiQI
  1119. 0<OQOQ
  1120. +$01:I<
  1121. e    QQMe4
  1122. Q$eQeQ
  1123. #:FIOOQJ
  1124. +0:<O
  1125. ieieQa
  1126. +$:EIaOQ
  1127. ++:<J:
  1128.     :II4
  1129. HcH``__`
  1130. rSrrSrTX
  1131. ieeieOO
  1132. +0F<IOQ#
  1133. 01:I4
  1134. 97676K6
  1135. cHc``__`
  1136. ¥qtWqtqW
  1137. WnqrrSYYSTY
  1138. T.YUT>>B>>'>''-((
  1139. keeiQO
  1140. E<aQQ4
  1141. $10:<I:
  1142. 8! 8! 
  1143. L67KL6
  1144. HK`c_H`__¥¥t_t¥¥tqs¥qsqV
  1145. WnmrXSSXnSoYSYTYT>=Z
  1146. ->-'.'
  1147. eieeOOQO
  1148. +$01:O<
  1149.  !! 78  
  1150. 6766LK6
  1151. HK`K_K_H__`¥`¥_¥¥tt[tWqW
  1152. q    XqnrrSXSYS
  1153. ''('(''
  1154. ##$aQOQQ:
  1155. $01:FO
  1156. L6K6L6
  1157. `KHc``
  1158. `__¥_¥t¥tqtWWqp
  1159. WqqrWrrSSXnSYTS
  1160. Z=A>B''>-'(-'
  1161. ieieOOQO
  1162. $++:IOOQQ4
  1163. %+0:<I1
  1164. +0:I<
  1165. eeiQO
  1166. #$00:OOQOO
  1167. $$1<<
  1168. +$1:FOQOO4
  1169. $+00:$+$
  1170. {eeiQO
  1171. ieeiQaO
  1172. +$0:IO
  1173. :OJQJ1
  1174. Fkikk
  1175. ikkii
  1176. #+01FO
  1177. ##EOQeJ
  1178. +Qkki
  1179. #+IJQe5:+
  1180. eeiI<
  1181. +$0:<a
  1182. $EOOQeJ
  1183. :JI1001
  1184. uukku
  1185. 5$$10FOQOQO
  1186. $0FIJQeM0
  1187. IJ4<J1
  1188. uukuu
  1189. ieiiQOO
  1190. +$01<OO
  1191. 0FIJOQeJ
  1192. OJ<41
  1193. uukuu
  1194. ieiee
  1195. +00FOQOQQO$
  1196. +OQ51
  1197. uukuu
  1198. $$0:aOQQOOJ$$:<OQObQ
  1199. +0:<JO:
  1200. keeieQOO
  1201. Q6ee4
  1202. $+110IQOQOOQOJQJ11FOMJ<1
  1203. OOQQO
  1204. kkik8
  1205. ieeiQQOO
  1206. Q(eQe
  1207. $+::IOIOOQeJ:
  1208. $01:#
  1209.  kiki
  1210. iQieeaO
  1211. #+00:
  1212. IaQJ0
  1213. #+$$1+00
  1214. #$aJOJ1
  1215. lieeiQOQO
  1216. $$+1F1:aOI
  1217. #$#+0$
  1218. $10:1
  1219. #$$<IbQeQM4
  1220. eeiM:a
  1221. #*#$+0$$0:
  1222. <JIQe
  1223. eM1#$
  1224. $+<<$
  1225. ++$::$++:0
  1226. #1IQJO
  1227. Q4+00
  1228. eQieFOO
  1229. #:+#$
  1230. #+0:+:$:<:#
  1231. +10$0$
  1232. #+:I1$00:<<I1:JIJMJe51$:+
  1233. iIIQO
  1234. ::1<<$
  1235. 0$101
  1236. #*EF+
  1237. +<IIOJIJJQeQO41JI<OM<0+00
  1238. uukkuu
  1239. #+00::0F<$
  1240. *#+:1#
  1241. *<QJ<I11
  1242. JQJ<1:11
  1243. uukkuu
  1244. ieeieaQO
  1245. 4+:+0FO:
  1246. $$01<
  1247. $0:0+
  1248. #01FQQ4
  1249. uukkuukk
  1250. $1$:<1
  1251. +1014
  1252. $1<1<<
  1253. kkuukkuukkuuk
  1254. kkuukkuuk
  1255. uukkuukk
  1256. kuukuukuukkuuk
  1257. eQee4
  1258. +::1:+
  1259. uukkuukkuukkuukk
  1260. k#uukkuukkuukkuukuukuukkuukkuukkuukkuu
  1261. $$100:
  1262. $,+1$
  1263. :1:10
  1264. uukuukkuukkuukkuukkuukkuu
  1265. k#uukkuukkuukkuukuukuukkuukkuukkuukkuu
  1266. ieeieQO
  1267. +1:+:
  1268. +:<<1$
  1269. uukuukkuukkuukkuuk
  1270. kkuukkuukuu
  1271. uukuukkuukkuukkuukuukuukkuuk
  1272. kkuukkuu
  1273. +01:1$
  1274. +01O:
  1275. uukkuukk
  1276. uukkuukuukuu
  1277. kkuukkuu
  1278. ie{ieQOOQQeQ
  1279. $11:0
  1280. #$,00
  1281. +$+0++0
  1282. +::F<$#
  1283. eQee4
  1284. 0:1::
  1285. ,$01$#
  1286. +011$
  1287. uukkuu
  1288. ieeiQOO
  1289. +011<4#
  1290. ::<<J1$
  1291. +$#+0
  1292. 0:1:0
  1293. 1    :01
  1294. ieiieQQO
  1295. $+$00+EIQe
  1296. *::<:
  1297. +$10:1
  1298. 0FJ<:
  1299. +0::<aQQ4
  1300. #1<<J:0
  1301. 1:<<1
  1302. Qee{QO
  1303. eQeeQ
  1304. #+:1EO
  1305. :1:<IO
  1306. 1$$0:0
  1307. eQeQeM$
  1308. #+#+<
  1309. #+:1<IQ:
  1310. $++:0
  1311. *$00+0
  1312. #+$+#+
  1313. :11:Qei
  1314. #+01:<<O5#
  1315. #+F<51
  1316. #$<I:1$0+
  1317. +<4$1bi
  1318. eeQeO
  1319. $$:1<:IQ
  1320. ##+0::0
  1321. iQOQQeQQeQeM
  1322. +$0:1<II1
  1323. $$1::
  1324. 1+$$+$
  1325. eQeeQ
  1326. #$+<aOQOQO
  1327. 011:FQ4
  1328. Palatino
  1329.     PowerLisp
  1330.     Helvetica
  1331. #Common Lisp Development Environment
  1332. Version 2.0
  1333. by Roger Corman
  1334. May 23, 1996
  1335. Copyright 
  1336.  1996 Roger Corman
  1337. All rights reserved.
  1338. Palatino
  1339. PowerLisp User Guide
  1340. Contents
  1341. Introduction
  1342. )F ................................
  1343. )` ................................
  1344. )` ................................
  1345. ..................
  1346. Z    Licensing
  1347. )4 ................................
  1348. )` ................................
  1349. )` ................................
  1350. ........................
  1351. ~"Registering Your Copy of PowerLisp
  1352.  ................................
  1353. ...........................
  1354. How To Reach Us
  1355. )a ................................
  1356. )` ................................
  1357. .............................
  1358. Quick Start Tutorial
  1359. )m ................................
  1360. )` ................................
  1361. )` ................................
  1362. .....
  1363. Files in this Release
  1364. )j ................................
  1365. )` ................................
  1366. )` ................................
  1367. ......
  1368. Compiling the Libraries
  1369.  ................................
  1370. )` ................................
  1371. ..................
  1372. Interactive Environment
  1373.  ................................
  1374. )` ................................
  1375. .............................
  1376. Preferences
  1377. )@ ................................
  1378. )` ................................
  1379. )` ................................
  1380. ........
  1381. PowerEdit Text Editor
  1382. )y ................................
  1383. )` ................................
  1384. )` ................................
  1385. ~!PowerLisp 2.0 Editor Enhancements
  1386.  ................................
  1387. .............................
  1388. PowerLisp Compiler
  1389. )p ................................
  1390. )` ................................
  1391. )` ................................
  1392. 68k Compiler
  1393. )I ................................
  1394. )` ................................
  1395. )` ................................
  1396. .....
  1397. PowerPC Compiler
  1398. )j ................................
  1399. )` ................................
  1400. ..........................
  1401. PowerLisp Assembler
  1402. )v ................................
  1403. )` ................................
  1404. )` ................................
  1405. PowerLisp Disassembler
  1406.  ................................
  1407. )` ................................
  1408. .............................
  1409. Linking and Debugging
  1410.  ................................
  1411. )` ................................
  1412. ..............................
  1413. Memory Usage
  1414. )R ................................
  1415. )` ................................
  1416. )` ................................
  1417. ..............
  1418. Operating System Issues
  1419.  ................................
  1420. )` ................................
  1421. .............................
  1422. Common Lisp Implementation
  1423.  ................................
  1424. )` ................................
  1425. ..................
  1426. Data Types
  1427. )= ................................
  1428. )` ................................
  1429. )` ................................
  1430. )`    .........
  1431. Scope and Extent
  1432. )^ ................................
  1433. )` ................................
  1434. ..............................
  1435. Type Specifiers
  1436. )R ................................
  1437. )` ................................
  1438. )` ................................
  1439. Program Structure
  1440. )d ................................
  1441. )` ................................
  1442. ............................
  1443. Predicates
  1444. ): ................................
  1445. )` ................................
  1446. )` ................................
  1447. ..........
  1448. Control Structure
  1449. )^ ................................
  1450. )` ................................
  1451. ..............................
  1452. Declarations
  1453. )F ................................
  1454. )` ................................
  1455. )` ................................
  1456. ......
  1457. Symbols
  1458. ). ................................
  1459. )` ................................
  1460. )` ................................
  1461. ..............
  1462. Packages
  1463. )4 ................................
  1464. )` ................................
  1465. )` ................................
  1466. ............
  1467. Numbers
  1468. )4 ................................
  1469. )` ................................
  1470. )` ................................
  1471. ............
  1472. Characters
  1473. ): ................................
  1474. )` ................................
  1475. )` ................................
  1476. ..........
  1477. ~    Sequences
  1478. ): ................................
  1479. )` ................................
  1480. )` ................................
  1481. ..........
  1482. Lists
  1483.  ................................
  1484. )` ................................
  1485. )` ................................
  1486. ....................
  1487. Hash Tables
  1488. )C ................................
  1489. )` ................................
  1490. )` ................................
  1491. .......
  1492. Arrays
  1493. )( ................................
  1494. )` ................................
  1495. )` ................................
  1496. ................
  1497. Strings
  1498. )( ................................
  1499. )` ................................
  1500. )` ................................
  1501. ................
  1502. Structures
  1503. )7 ................................
  1504. )` ................................
  1505. )` ................................
  1506. ...........
  1507. The Evaluator
  1508. )L ................................
  1509. )` ................................
  1510. )` ................................
  1511. Streams
  1512. )+ ................................
  1513. )` ................................
  1514. )` ................................
  1515. ...............
  1516. Input/Output
  1517. )O ................................
  1518. )` ................................
  1519. )` ................................
  1520. File System Interface
  1521. )p ................................
  1522. )` ................................
  1523. ........................
  1524. Palatino
  1525. PowerLisp User Guide
  1526. Errors
  1527. )" ................................
  1528. )` ................................
  1529. )` ................................
  1530. ..................
  1531. Miscellaneous Features
  1532.  ................................
  1533. )` ................................
  1534. ...................
  1535.  ................................
  1536. )` ................................
  1537. )` ................................
  1538. ...................
  1539. Pretty Printing
  1540. )R ................................
  1541. )` ................................
  1542. )` ................................
  1543. )" ................................
  1544. )` ................................
  1545. )` ................................
  1546. ..................
  1547. Conditions
  1548. )= ................................
  1549. )` ................................
  1550. )` ................................
  1551. )`    .........
  1552. Series
  1553. )" ................................
  1554. )` ................................
  1555. )` ................................
  1556. ..................
  1557. Non-standard Extensions
  1558.  ................................
  1559. )` ................................
  1560. ............................
  1561. New Features
  1562. )L ................................
  1563. )` ................................
  1564. )` ................................
  1565. ................
  1566. New Features in PowerLisp 2.0
  1567.  ................................
  1568. )` ................................
  1569. .....
  1570. New Features in PowerLisp 1.2
  1571.  ................................
  1572. )` ................................
  1573. .....
  1574. Troubleshooting
  1575. )[ ................................
  1576. )` ................................
  1577. )` ................................
  1578. ...........
  1579. PowerLisp Startup Process
  1580.  ................................
  1581. )` ................................
  1582. .............
  1583. ~$What To Do If PowerLisp Will Not Run
  1584.  ................................
  1585. .......................
  1586. Notes
  1587. )" ................................
  1588. )` ................................
  1589. )` ................................
  1590. ..............................
  1591. Palatino
  1592. PowerLisp User Guide
  1593. Introduction
  1594. *:TThis document is intended to provide an introduction to PowerLisp 2.0, a Common Lisp
  1595. [development environment for the Macintosh. PowerLisp consists of a Common Lisp interpreter,
  1596. Vnative-code 680x0 and PowerPC compilers, 680x0 and PowerPC macro assemblers, 680x0 and
  1597. UPowerPC disassemblers, incremental linker and multi-window text editor. It requires a
  1598. ZMacintosh with at least a 68020 processor and system 7.0 or later, or a Power Mac. About 3
  1599. Ymegabytes of RAM are required to run it, and to do much with it you need more like 5 or 6
  1600. Cmegabytes. Like any Common Lisp system, the more memory the better.
  1601. ZPowerLisp has the ability to run in the background. While executing a Common Lisp program,
  1602. Bthe user may switch to another application as it continues to run.
  1603. _PowerLisp 2.0 is a fat binary application, and will automatically run in native mode on a Power
  1604. _Mac, as well as continuing to run on 68k Macintoshes. PowerLisp 2.0 includes compiled libraries
  1605. Tfor both 68k Mac and Power Mac, and a PowerPC native code compiler and assembler are
  1606.     included.
  1607. WNew to PowerLisp 2.0 includes CLOS support, the Common Lisp object-oriented programming
  1608. Ysystem. A number of other improvements and bug fixes have been included in PowerLisp 2.0.
  1609. 6&fbb0
  1610. s,79.
  1611. Palatino
  1612. PowerLisp User Guide
  1613. PowerLisp is extremely fast.
  1614. = All compiled PowerLisp functions execute as native 680x0  or
  1615. ZPPowerPC instructions. The speed is comparable to other fully compiled languages.
  1616. NPowerLisp programs execute in the background, while you are using the system. 
  1617. All editor
  1618. Z[functionality is fully available while you are compiling or otherwise executing Common Lisp
  1619. ]programs. I do not know of another development environment on the Macintosh that can do this.
  1620. SOf course, you can also use of a different application while your programs execute.
  1621. ]PowerLisp 2.0 is being released as shareware. I expect to release regular updates, which will
  1622. ^include new features and bug fixes. The frequency and scope of these will depend on the amount
  1623. bof interest there is in the product. I encourage everyone who finds this product useful to send me
  1624. dthe shareware fee (see Licensing, below) and register your copy. Even if you don't elect to register
  1625. ]it, I appreciate correspondence via e-mail or otherwise letting me know what you think of it.
  1626. [Thanks to Digital Press and Guy Steele Jr., Common Lisp documentation is now available from
  1627. Zwithin PowerLisp. A hierarchical menu structure allows browsing of the full text of Common
  1628. cLisp, the Language 2nd Edition. This text is distributed electronically along with PowerLisp. It is
  1629. 8also hooked into the Common Lisp documentation function.
  1630. aPlease check this product out. I believe it offers extraordinary value for the price. The primary
  1631. Valternative for Lisp programming, Macintosh Common Lisp from Digitool, is an excellent
  1632. [product. PowerLisp cannot compete on features or performance with Macintosh Common Lisp. It
  1633. eis, however, one tenth the cost ($50 as opposed to $395). I feel there may be a niche for a low-cost,
  1634. ^small, easy-to-use product like this. Also, at least for the time being, PowerLisp is the only
  1635. [PowerPC native common lisp that I know of. If you are using a Power Mac, and you like Lisp,
  1636. +you will want to take PowerLisp for a spin!
  1637. <I enjoy programming with PowerLisp, and I hope you will too.
  1638. Roger Corman
  1639. Palatino
  1640. PowerLisp User Guide
  1641. Z    Licensing
  1642. *:¥PowerLisp is distributed as shareware. The author of PowerLisp reserves the copyright to the
  1643. Yexecutable application, as well as the source code to the compiler, assembler and library
  1644. ^functions. A payment of $50 gives you the right to use one copy of PowerLisp. If you find this
  1645. Pprogram useful, please send a check for this amount to the address below (under 
  1646. Registering
  1647. Your Copy of PowerLisp
  1648. )pJ). If you are a teacher, and are interested in using this for a class, the
  1649. Z^standard license fee is $50.00 + $10.00 per student using PowerLisp. The $50.00 fee covers one
  1650. bpermanent license, while the $10.00 fees are good for the duration of the class only. Students who
  1651. Zwish to continue using PowerLisp may choose to register permanently at the student rate of
  1652. b$30.00. Unlicensed copies of this system cannot be legitimately used in a class setting otherwise.
  1653. ¥We have spent a considerable amount of time developing this program. We may elect to spend a
  1654. Dlot more time on it, but only if licensing fees received warrant it.
  1655. ¥You may share this program with others. You may not redistribute it for profit, nor make any
  1656. 4changes to it, without the permission of the author.
  1657. Note: 
  1658. XAll registered users of PowerLisp 1.01, 1.1 or 1.2 automatically are registered users of
  1659. ZZPowerLisp 2.0. Contact us via e-mail or telephone (see Registering your copy of PowerLisp,
  1660. ¥below) to obtain your product registration code if you have registered and have not received
  1661. your code by mail.
  1662. Palatino
  1663. PowerLisp User Guide
  1664. PowerLisp 2.0
  1665. License Price:
  1666.     $50.00 US
  1667. Student Price:
  1668.     $30.00 US
  1669. What You Get:
  1670. )$TOn receipt of your check, we will forward you any the most up-to-date information we
  1671. Qhave regarding bugs, new versions and features.  We will keep you informed of new
  1672. Wversions and features as they become available. If possible, send an e-mail address, so
  1673. Tyou can be added to the soon-to-be setup PowerLisp mailing list. We will also supply
  1674. Wyou with a Product Registration Code which you may use to register your installed copy.
  1675. 2This will disable the startup registration dialog.
  1676. )$ZIf you send a list of requested additional features, we will do our best to implement them
  1677. as soon as possible.
  1678. )$TWe will attempt to help with any problems you have and answer questions. We can only
  1679. Voffer limited phone support. The preferred method of contacting us is via e-mail or US
  1680. Amail. We will answer all mail communications as soon as possible.
  1681. )$VIf and when we decide to convert this to a commercial version (non-shareware) licensed
  1682. Towners of the shareware version will be guaranteed a special arrangement. This would
  1683. Flikely be a free or at-cost license upgrade to the commercial version.
  1684. Palatino
  1685. PowerLisp User Guide
  1686. Z"Registering Your Copy of PowerLisp
  1687. Send a check for 
  1688. $50.00
  1689.  US (or 
  1690.  if you are a student) to:
  1691. Roger Corman
  1692. 2124 Cummings Drive
  1693. Santa Rosa, CA 95404
  1694. ^You may contact us by mail to the above address, or via e-mail or telephone (see below). Along
  1695. ^with the fee, be sure to send your address (and phone number if you don
  1696. t mind). Also we would
  1697. Zappreciate a mention of which version you have, what your system is like, and any comments
  1698. ^you have. A wish list of product improvements would also be welcome. Also, if possible, please
  1699. Tsend an e-mail address where you would like PowerLisp update information to be sent.
  1700. How To Reach Us
  1701. The PowerLisp web site is at:
  1702. Monaco
  1703. http://www.crl.com/~rgcorman
  1704. ZWThis site will contain the most up-to-date release of PowerLisp and the most up-to-date
  1705. information.
  1706. America Online:
  1707. owerLisp
  1708. Internet E-mail:
  1709. PowerLisp@aol.com
  1710. rgcorman@crl.com
  1711. Telephone:
  1712. (707) 575-4024 (voice)
  1713. (707)528-7477 (fax)
  1714. Palatino
  1715. PowerLisp User Guide
  1716. Quick Start Tutorial
  1717. *=UThis section is intended to briefly lead you through writing, running, compiling, and
  1718. 9disassembling a small Common Lisp program with PowerLisp.
  1719. )$8Start PowerLisp by double-clicking the application icon.
  1720. UIt will take a few seconds as it loads the standard libraries. When it finishes, your
  1721. Rworksheet will be displayed, with the blinking text cursor. The message 
  1722. Ready for
  1723. Winput
  1724.  should appear in the status message area at the top of the worksheet. You should
  1725. Tregularly watch the status bar while programming within the Worksheet. It will often
  1726. <display messages regarding the status of the Lisp evaluator.
  1727. Enter a PowerLisp expression.
  1728. Try typing:
  1729. Monaco
  1730. (list-all-packages)
  1731. RThis command invokes the common lisp function which returns the packages loaded in
  1732. %the system. To execute it, press the 
  1733. Enter
  1734.  key (not the 
  1735. Return
  1736.  key). In PowerLisp, the
  1737. Return
  1738. ) S key is only used for editing
  1739. to enter a new line into the text in the window. Only
  1740. Enter
  1741. P key executes anything. In this case, the entire line of text that the cursor is
  1742. ~;positioned on is read by the PowerLisp system and executed.
  1743. Note that you may use 
  1744. Return 
  1745. )"*(hold down the Command key while pressing 
  1746. Return
  1747. ~Gto simulate the Enter key if you prefer. Some keyboards do not have an 
  1748. Enter
  1749.  key, and so
  1750. may require this method.
  1751. After pressing 
  1752. Enter
  1753. @ , the PowerLisp interpreter will output a list representing the
  1754. ~Xpackages loaded in the system. All PowerLisp output is in bold-faced text. What you type
  1755. is in normal text.
  1756. Palatino
  1757. PowerLisp User Guide
  1758. )$*Create and execute a common lisp function.
  1759. Try typing:
  1760. Monaco
  1761. (defun print-column (x)
  1762. ,"Prints the elements of a list in a column."
  1763. (dolist (i x)
  1764. (print i)))
  1765. ~$While typing this function, use the 
  1766. Return
  1767.  key to end each line.
  1768. ~YAfter the whole function has been entered, highlight the entire expression by clicking to
  1769. Xthe left of the opening parenthesis and dragging to the right of the ending parenthesis.
  1770. AAfter the whole expression is highlighted (all four lines) press 
  1771. Enter
  1772.  . The Lisp system
  1773. ~Qwill read and execute the expression, and then return and display the name of the
  1774. defined function print-column.
  1775. QAlternatively, since you are editing in Lisp mode, you may leave your text cursor
  1776. [positioned immediately following the last close parenthesis if the function definition. You
  1777. Nshould notice that the entire function definition is outlined. When you press 
  1778. Enter
  1779. , the
  1780. ~Eoutlined expression is first automatically highlighted then executed.
  1781. Execute the function.
  1782. Type:
  1783. ,(print-column '(see hear taste smell touch))
  1784. print-column
  1785. )T@ function you defined will cause the list elements to be printed
  1786. ~Svertically in the worksheet (one element on each line). It is being executed by the
  1787. interpreter.
  1788. Get function documentation.
  1789. Type:
  1790. '(documentation 'print-column 'function)
  1791. HThe system will display documentation that you defined for the function.
  1792. Compile the function.
  1793. Type:
  1794. (compile 'print-column)
  1795. ¥If this is the first time you have requested the compiler, it may take a few seconds to load
  1796. Sthe compiler and assembler. After loading the compiler, the system will compile the
  1797.     function.
  1798. SIf the function compiles correctly, the system will print the name of the function.
  1799. Palatino
  1800. PowerLisp User Guide
  1801. )$8Execute the compiled function by repeating step 4 above.
  1802. ¥It is not necessary to retype this line
  1803. just go to the previous line, highlight it and press
  1804. Enter
  1805. : . In PowerLisp, you should never have to retype anything!
  1806. ~'The system should respond as in step 4.
  1807. Disassemble the function.
  1808. $Type and execute the following line:
  1809. Monaco
  1810. (disassemble 'print-column)
  1811. VThe system will display a dump of the machine instructions which comprise the function
  1812. print-column
  1813. )T>. You may or may not be interested in this. Compiled PowerLisp
  1814. ~Yfunctions always include code to check for the correct number of arguments (in this case,
  1815. one).
  1816. Time the function.
  1817. GYou can invoke PowerLisp
  1818. s high-resolution timer by executing the line:
  1819. 3(time (print-column '(see hear taste smell touch)))
  1820. XThe function will be executed as before, and will be followed by a message regarding the
  1821. Uamount of time elapsed during execution. You may compare this against the interpreted
  1822. Xversion by re-executing the function definition from step 3 and executing the line above
  1823. Gagain. You will see that as an interpreted function it executes slower.
  1824. )$#Save the function you have defined.
  1825. Select the 
  1826.  command from the 
  1827.  menu. Name the new file 
  1828. print
  1829. column.lisp
  1830. Select 
  1831. PowerLisp Worksheet
  1832.  from the 
  1833. Window
  1834. )') menu to return to the worksheet (or just
  1835. ~Vclick on its window). Select the function definition (from step 3) by highlighting the
  1836. whole thing.
  1837. Execute the 
  1838.  command via the 
  1839.  menu or pressing 
  1840. Select the file 
  1841. print-column.lisp
  1842.  from the 
  1843. Window
  1844.  menu or by clicking on its
  1845. window.
  1846. Execute the 
  1847. Paste
  1848.  command via the 
  1849.  menu or pressing 
  1850. ~3The function definition should be displayed in the 
  1851. print-column.lisp
  1852. window.
  1853. Select 
  1854.  from the 
  1855.  menu to save the file.
  1856. Palatino
  1857. PowerLisp User Guide
  1858. Important Notes
  1859. )$WYou may have any number of files open. As editor memory gets filled up, temporary files
  1860. Zmay be created to store copies of the files you are editing. This helps prevent the number
  1861. Vof files you have open from affecting the amount of memory available to Lisp programs.
  1862. )$#There is no difference between the 
  1863. Monaco
  1864. PowerLisp Worksheet
  1865. and any other file.
  1866. ~WEvery open file may act as a worksheet. Lisp output will, however, be inserted into any
  1867. "file which you use as a worksheet.
  1868. VNew to PowerLisp 2.0: The above statement is no longer completely correct. By default,
  1869. Rall Lisp output will now go to the Worksheet regardless of the window in which you
  1870. Vexecuted the command. If you prefer the old behavior, you may enable it by turning off
  1871. Output Always Goes To Worksheet
  1872. " option in the Preferences dialog.
  1873. )$VIf you are not using Lisp mode editing, you may enter common lisp expressions either a
  1874. line at a time, pressing 
  1875. Enter
  1876. : after each line, or by entering a complete expression and
  1877. ~Wthen executing the entire thing at once. The latter is highly recommended. In the first
  1878. Ycase, if you have not entered a complete Lisp expression (perhaps not closed a list), you
  1879. Wwill see a prompt containing the number of open left parentheses in the message area at
  1880. the top of the editor window.
  1881. Palatino
  1882. PowerLisp User Guide
  1883. Files in this Release
  1884. The application is called 
  1885. Monaco
  1886. PowerLisp 2.0
  1887. ( Double click on it to launch PowerLisp.
  1888. Z5The documentation is in a Microsoft Word format file 
  1889. PowerLisp 2.0 Documentation
  1890. Z0A folder in the PowerLisp main folder is called 
  1891. Library
  1892. )1&. It contains libraries that PowerLisp
  1893. ZCneeds while running. These include the following lisp source files:
  1894. cl.lisp
  1895. ,Portions of the PowerLisp standard library .
  1896. assembler_68k.lisp
  1897. The PowerLisp 680x0 assembler .
  1898. compiler_68k.lisp
  1899. The PowerLisp 680x0 compiler.
  1900. assembler_PPC.lisp
  1901.  The PowerLisp PowerPC assembler.
  1902. compiler_PPC.lisp
  1903. The PowerLisp PowerPC compiler.
  1904. Z    loop.lisp
  1905. ,The Common Lisp Loop facility (MIT version).
  1906. backquote.lisp
  1907. 6Optimized backquote facility (from CLTL2, Guy Steele).
  1908. defpackage.lisp
  1909. $The defpackage macro implementation.
  1910. describe.lisp
  1911.  A partial implementation of the 
  1912. describe
  1913.  function.
  1914. format.lisp
  1915. Format
  1916.  function implementation.
  1917. graphics.lisp
  1918. 2Some basic graphics routines (PowerLisp specific).
  1919. structures.lisp
  1920.     Defstruct
  1921.  macro implementation.
  1922. documentation.lisp
  1923. Documentation
  1924.  function implementation.
  1925. Z    clos.lisp
  1926. Clos library 
  1927. (Closette implementation).
  1928. random.lisp
  1929. Random
  1930.  implementation (CMU).
  1931. startup.lisp
  1932. ARun at startup, causes above libraries to load. This can never be
  1933. Acompiled. You may add startup code to the end of this file if you
  1934. wish.
  1935. Z_Additionally, compiled versions of these may exist along with these source files. They have the
  1936. same name, with a 
  1937. .fasl
  1938. extension (68k binaries) or .
  1939.  (PowerPC binaries).
  1940. Examples
  1941. Hfolder contains some PowerLisp source files you may want to refer to for
  1942. Z*examples of PowerLisp functions. The file 
  1943. eliza.lisp
  1944. )F  is a rough version of the Eliza
  1945. Z[program from Peter Norvig
  1946. s book. The examples are admittedly sparse. I intend to have some
  1947. Ygood example programs in future versions. If you have written an interesting program with
  1948. _PowerLisp, and you wouldn
  1949. t mind having it distributed with the releases, please send it to me.
  1950.     The file 
  1951. closette-tests.lisp
  1952. )r= contains code from Art of the Metaobject Protocol, by Gregor
  1953. ZYKiczales, Jim des Rivieres and Daniel G. Bobrow. It contains many examples of using CLOS.
  1954. PowerLisp Worksheet
  1955. ;file is the file that normally gets loaded as the worksheet
  1956. Z]when you launch PowerLisp. If you remove or delete this file, a new one will automatically be
  1957. #created when you restart PowerLisp.
  1958. Palatino
  1959. PowerLisp User Guide
  1960. Compiling the Libraries
  1961. YAlthough compiled versions of the PowerLisp libraries should have been included with your
  1962. 0release, you may want to recreate them yourself.
  1963. A files 
  1964. Monaco
  1965. compile-68k-libraries.lisp
  1966.  and 
  1967. compile-PPC-libraries.lisp
  1968. are included in the 
  1969. Library
  1970. )1F folder with this release. Execute the appropriate file to compile the
  1971. Z`libraries. Give yourself as much memory as possible and be prepared to wait a while. If you like
  1972. ayou can switch to another application and let the libraries compile in the background. Of course,
  1973. Nyou can recompile just a single library if you wish, by using the Common Lisp 
  1974. compile-file
  1975. Z    function.
  1976. [PowerLisp 2.0 does not support cross-compilation i.e. you cannot compile 68k libraries on a
  1977. .Power Mac or PPC libraries on a 68k Macintosh.
  1978. CIf compilation is successful, new versions of the libraries with a 
  1979. .fasl 
  1980. )*    (68k) or 
  1981. .ppcl
  1982.  (PPC)
  1983. Z"extensions should show up in your 
  1984. Library
  1985. sub-folder.
  1986. Palatino
  1987. PowerLisp User Guide
  1988. Interactive Environment
  1989. *:^PowerLisp is integrated with the PowerEdit text editor. The environment provides a 
  1990. worksheet
  1991. Wapproach to Common Lisp development. It is specifically modeled on the MPW environment,
  1992. Dand also resembled the approach used by the Mathematica application.
  1993. VRather than having a window which emulates a console (e.g. the 
  1994. Listener
  1995.  in Macintosh
  1996. SCommon Lisp), the worksheet approach does not emulate a console. Any number of text
  1997. Wwindows may be open, and any Common Lisp code in any open window may be executed at any
  1998. `time. The user typically enters a Common Lisp function or expression, highlights the expression,
  1999. then presses the 
  2000. Enter
  2001.  key. Note that the 
  2002. Enter
  2003.  key is distinct from the 
  2004. Return
  2005.  key on the
  2006. Macintosh keyboard. The 
  2007. Return
  2008. ) B key is used in the editor to insert a new line. It will not cause
  2009. Z+the PowerLisp system to interpret any text.
  2010. You may use 
  2011. Return 
  2012. )")(hold down the Command key while pressing
  2013. Return) 
  2014. )%Cto simulate the Enter key if you prefer. Some keyboards do not have
  2015. Enter
  2016. % key, and so may require this method.
  2017. ZfFor convenience, if no text is highlighted, the entire line of text that the text cursor is on will be
  2018. interpreted whenever the 
  2019. Enter
  2020. D key is pressed. This allows for a usage model which is similar to a
  2021. Z!console (i.e. type a line, press 
  2022. Enter
  2023. , type another line, press 
  2024. Enter
  2025. !). Like most Lisp consoles, until
  2026. Zba Lisp expression is completely entered, no evaluation takes place and no output is produced. If a
  2027. XLisp expression is only partially completed, the message area will display the message 
  2028. Monaco
  2029. Ready
  2030. Z    for input
  2031.  followed by the number of open left parentheses. This indicates that you are in
  2032. Z&the middle of executing an expression.
  2033.     Pressing 
  2034. Enter
  2035. R after each line (partial expression input) should not be used when you are in the
  2036. Z    editor
  2037. , because 
  2038. )*    Lisp mode
  2039. )0; will sometimes cause more than just the current line to be
  2040. Z    executed.
  2041. ]After an entire Common Lisp expression is read, it is interpreted, and the resulting value is
  2042. Moutput at the line immediately following the line that the text cursor is on.
  2043. New to PowerLisp 2.0: 
  2044. )hIThe above statement is no longer completely correct. By default, all Lisp
  2045. ZVoutput will now go to the Worksheet regardless of the window in which you executed the
  2046. Ncommand. If you prefer the old behavior, you may enable it by turning off the 
  2047. Output Always
  2048. Goes To Worksheet
  2049. )Z" option in the Preferences dialog.
  2050. ZWSince Common Lisp code can be entered from anywhere in any window, a prompt is not very
  2051. _useful. Output prompts also tend to get in the way of entering the next expression, as they can
  2052. `inadvertently get sent back as part of the next expression. Therefore, by default, PowerLisp has
  2053. no prompt.
  2054. WThe worksheet approach allows you to very easily edit, execute, re-edit, and re-execute
  2055. `expressions without unnecessary typing. I think you will come to appreciate it as much as  I do.
  2056. Palatino
  2057. PowerLisp User Guide
  2058. Z&The front-most edit window contains a 
  2059. status line
  2060. )/.. This area, under the popup menus, is used by
  2061. Z7the system to display messages about what it is doing. 
  2062. Unless the status line reads 
  2063. Monaco
  2064. Ready
  2065. Z    for input
  2066. , you should not attempt to execute a Common Lisp expression.
  2067. ZUWhen a Common Lisp expression is being executed, you may execute editor commands, and
  2068. _otherwise edit files. You may also switch to another application. In this case, the Common Lisp
  2069. bprocessing will continue in the background. This is useful, for example, during a long compile. If
  2070. Yyou attempt to edit a file (with PowerEdit, the PowerLisp editor), any text output by the
  2071. ]Common Lisp program will be directed to what was the current text insertion point at the time
  2072. cthe Enter key was pressed (to begin the execution). I think this is generally what you want. If you
  2073. ]are editing the same file in which the expression was executed, however, the PowerLisp output
  2074. ewill reset the insertion point whenever it outputs text. If you are going to edit files, you probably
  2075. Mshould avoid editing the same file you are using to execute Common Lisp code.
  2076. Preferences
  2077. YThe amount of time PowerLisp spends executing Common Lisp programs vs. the amount of time
  2078. ¥given up to background and editing tasks is now controllable from the Preferences dialog. By
  2079. Zselecting Most Cooperative, background tasks will run the smoothest, but Lisp programs may
  2080. ]run slower. On older Macs, or Macs with a lot of extensions, performance of Lisp programs may
  2081. ¥be unacceptable. Least cooperative will give the least time to background and editing tasks,
  2082. _allowing Lisp programs to run the fastest. Background tasks will only get called once a second,
  2083. Ywhich may not be acceptable. The default setting is in the middle between these extremes.
  2084. ^By default, all Lisp output will now go to the Worksheet regardless of the window in which you
  2085. Zexecuted the command. If you prefer the old behavior, you may enable it by turning off the
  2086. Output Always Goes To Worksheet
  2087. " option in the Preferences dialog.
  2088. Z_Preferences setting must be explicitly saved, via the Save button on the Preferences dialog, or
  2089. Mthey will revert back to their original settings next time you run PowerLisp.
  2090. Palatino
  2091. PowerLisp User Guide
  2092. PowerEdit Text Editor
  2093. *:cThe PowerEdit text editor does not use TextEdit (the built in text editor in the Macintosh ROM). It
  2094. therefore is 
  2095. [ restricted to text files of 32 kilobytes or less. In fact, it can easily handle text files
  2096. ZVover a megabyte in size. PowerEdit does not need to keep the whole file in memory (any
  2097. &unmodified portions are left on disk).
  2098. _PowerEdit, unlike TextEdit, correctly handles tabs. Tabs can be set to 1, 4 or 8 spaces for the
  2099. Xdocument. Other tab settings can be added by using ResEdit to modify the Tabs popup menu
  2100. eresource. Each text window gets its own tab setting. Tabs get saved in the resource fork of the file,
  2101. Sso that when the file is reopened the editor will remember the most recent setting.
  2102. _The PowerEdit functions should be self-explanatory. Features include Undo, Find, Replace, Copy,
  2103. `Cut, Paste, Select All, and Print. The Print feature is currently pretty rough. It doesn
  2104. t print
  2105. ;anything except the text of the file (no fancy formatting).
  2106. aThe Window menu maintains a list of all open text files. You can use it to navigate between files
  2107. "when you have a lot of files open.
  2108.     Scrolling
  2109. YPowerEdit uses an improved (slightly different) way of scrolling than most Macintosh text
  2110. ceditors. While you drag the scrollbar thumb, the file scrolls. Normally, in other editors, the text
  2111. `window does not scroll until after you release the thumb. I worked hard to get this scrolling to
  2112. awork this way, and am very pleased with the result. The only downside I can see is that it may be
  2113. ca bit sluggish on slower Macs. I plan to have an option to revert to 
  2114. normal
  2115.  scrollbar behavior in
  2116. a future version.
  2117. Font and Size Pulldowns
  2118. VEach text window may have a different font and character size associated with it. This
  2119. ainformation is not currently saved with the file. The editor uses fractional widths internally to
  2120. Zsupport non-monospaced font editing. Typically monospaced fonts work best for programming,
  2121. however. The default font is 
  2122. Monaco
  2123. Monaco, 9 pt
  2124. )H2. The font and font size selected are 
  2125. remembered
  2126. Z1by information in the resource fork of  the file.
  2127. Document Preferences
  2128. A resource of type 
  2129. C is added to the resource fork of any text file which is created or
  2130. Z¥viewed by PowerEdit. It contains the user settings for the window position and size, the tab
  2131. `setting, and the font and font size. It is compatible with the method that MPW uses to save this
  2132. Minformation, so that it is convenient to alternate between PowerEdit and MPW.
  2133. *, Common Lisp Support in PowerEdit
  2134. Palatino
  2135. PowerLisp User Guide
  2136. ZRPowerEdit includes some features which make it particularly useful for Common Lisp
  2137. _programming. For one thing, all PowerLisp interpreter output (which is sent to standard output)
  2138. cis printed in a bold version of the font you have selected. This serves to distinguish between your
  2139. _input and the interpreter
  2140. s output. The editor stores and remembers text style information. The
  2141. _PowerLisp system ignores this information, however. All text, bold or otherwise, looks the same
  2142. to the interpreter.
  2143. aAn additional Lisp support feature involves the highlighting of parenthesized expressions. If the
  2144. dwindow is in Lisp Mode, and the text cursor is next to a parenthesized expression (a left or a right
  2145. dparenthesis which is balanced) the entire expression is highlighted by an outline. This is difficult
  2146. ^to explain but relatively easy to demonstrate. Just turn on Lisp Mode from the popup menu, and
  2147. Benter a Common Lisp expression with several levels of parentheses.
  2148. GLisp Mode is automatically turned on by the editor for any file with a 
  2149. Monaco
  2150. .lisp
  2151. extension on the
  2152. ZLfilename. You can explicitly turn it on or off any time from the popup menu.
  2153. _In Lisp Mode, when a parenthesized Lisp expression is outlined, pressing Enter will execute the
  2154. centire expression, rather than just the current line. To make it obvious, the whole expression gets
  2155. ;highlighted for a fraction of a second before executing it.
  2156. fWhen the cursor is placed next to a lisp expression (highlighting it), double clicking will select the
  2157. Qentire expression, which is very useful for cutting and pasting lisp expressions.
  2158. Line Wrap Mode
  2159.     Line Wrap
  2160. )0U mode works much better in 2.0 than it did in any previous version but still has some
  2161. Z`bugs that show up when editing text. It is also rather slow on certain machines. You may turn on
  2162. dthis mode, via a checkbox to the left of the status line. I find it occasionally useful to turn this
  2163. mode on when 
  2164. )E    browsing 
  2165. ).>unformatted Lisp output (which may otherwise produce vary long
  2166. lines). 
  2167.     Line Wrap
  2168.  mode is now compatible with 
  2169.     Lisp mode
  2170. )0! (unlike with previous versions).
  2171. Formatting
  2172. aWhen you save a file which has bold or italicized text in it, the text attributes get stored in a
  2173. fresource of the file. This causes the bold text to be bold when you later load the file (it saves this
  2174. /attribute). You may use the edit menu commands 
  2175. Italics
  2176.  and 
  2177. Plain 
  2178. to control the text
  2179. Z¥attributes of text in a file. These attributes are entirely ignored by the Lisp interpreter.
  2180. *!    Lisp Mode
  2181. `In the Lisp mode of the editor, when a parenthesized Lisp expression is outlined, pressing Enter
  2182. dwill execute the entire expression, rather than just the current line. To make it obvious, the whole
  2183. Kexpression gets highlighted for a fraction of a second before executing it.
  2184. fWhen the cursor is placed next to a lisp expression (highlighting it), double clicking will select the
  2185. Qentire expression, which is very useful for cutting and pasting lisp expressions.
  2186. *=!PowerLisp 2.0 Editor Enhancements
  2187. )$VLisp output goes to the Worksheet by default, regardless of which window you execute a
  2188. lisp expression from.
  2189. Palatino
  2190. PowerLisp User Guide
  2191. )$RThe amount of memory allocated to the editor was increased in PowerLisp 2.0, which
  2192. ,makes editing large files a little smoother.
  2193. )$VA bug that showed up on the display when dragging to off the right or left side of the
  2194. 0window (invoking auto-scrolling) has been fixed.
  2195. )$USeveral bugs relating to using Lisp mode and line wrap mode together have been fixed.
  2196. [A few screen anomalies (such as vertical bars) will still show up occasionally in line wrap
  2197. mode, however.
  2198. ZWLisp mode has been improved. As several of you noted, it seems logical that when a Lisp
  2199. aexpression is outlined, pressing Enter should execute the entire expression, rather than just the
  2200. `current line. I have implemented this. To make it obvious, the whole expression gets highlighted
  2201. /for a fraction of a second before executing it.
  2202. WAnother problem several people had was getting buried in open parentheses. When you are
  2203. `entering expressions, and have not closed enough levels of parentheses, the system seems frozen.
  2204. ]To make it clearer, the editor now shows the number of open parentheses in the message bar. I
  2205. think this helps.
  2206. aWhen you save a file which has bold or italicized text in it, the text attributes get stored in a
  2207. fresource of the file. This causes the bold text to be bold when you later load the file (it saves this
  2208. /attribute). You may use the edit menu commands 
  2209. Italics
  2210.  and 
  2211. Plain 
  2212. to control the text
  2213. Z¥attributes of text in a file. These attributes are entirely ignored by the Lisp interpreter.
  2214. Palatino
  2215. PowerLisp User Guide
  2216. PowerLisp Compiler
  2217. 68k Compiler
  2218. aThe PowerLisp 68k compiler is a full 680x0 native code compiler. This means that a function, once
  2219. ]compiled, executes as direct machine instructions. This allows the compiled lisp functions to
  2220. ¥execute very fast. It is distinct from the intermediate code that some Lisp systems produce.
  2221. ;The compiler can be invoked on a single function, with the 
  2222. Monaco
  2223. compile
  2224.  function, or on a source
  2225. file with the 
  2226. compile-file
  2227. )TA function. The first time you call either of these functions, the
  2228. ZYcompiler and assembler modules are loaded into memory. This can take from 5 to 20 seconds
  2229. adepending on your system. After loading, compiling is quick. A function typically takes less than
  2230. one second to compile.
  2231.     When the 
  2232. compile-file
  2233. )TG function is used, a binary file of machine code is produced. This file
  2234. is of type 
  2235. )*! and typically has the extension 
  2236. .fasl
  2237. # Binary files are typically about 3
  2238. Zbtimes as large as the source files they originate from, but that is only because of the relatively
  2239. dinefficient way that all the symbol information is stored in the binary file. PowerLisp 1.1 compiled
  2240. afiles are about 40% smaller than 1.01 compiled files (and still compatible with 1.01 files). They
  2241. `need to store a lot of symbol information so that all the addresses can automatically be updated
  2242. bcorrectly when the file is loaded in another system or at a later date. Once loaded, compiled code
  2243. ¥is relatively space efficient. When compiled code segments are no longer needed, the garbage
  2244. &collector will correctly discard them.
  2245. _The entire compiler is written in Common Lisp. A couple of support functions had to be added in
  2246. eC++ because there is no support for packed arrays of short integers, but all the significant stuff is
  2247. in the file 
  2248. compiler.lisp
  2249. )[C which is included in this release. The compiler directly generates
  2250. Z_68000 assembler code, which it then passes off to the assembler to create the function. I could
  2251. Ximprove the compiler performance somewhat by assembling as it goes, but I have found the
  2252. 4intermediate step useful for debugging the compiler.
  2253. aThe compiler generates code which generally behaves exactly like interpreted code, only faster. I
  2254. Utypically see a 5 to 30 times speed improvement when I compile something. In terms of
  2255. ¥debugging, there are some differences between interpreted and compiled code. In at least one
  2256. `case, compiled code is more correct than interpreted (in the case of returning multiple values).
  2257. ;Some special forms are not yet implemented in the compiler.
  2258. PowerPC Compiler
  2259. TWhen running native, PowerLisp automatically loads and executes the PowerPC compiler
  2260. ompiler_ppc.lisp
  2261. compiler.ppcl
  2262. )[,) in response to a compilation request. This
  2263. ZQcompiler generates PowerPC machine code which conforms to Apple's PowerPC runtime
  2264. ^architecture specification. When PowerLisp is running native on a Power Mac, 68k compiled lisp
  2265. dfiles (.fasl) cannot be used. Although theoretically possible to do so, by invoking the 68k emulator
  2266. Palatino
  2267. PowerLisp User Guide
  2268. Z¥via the mixed mode manager, the time spent in mode switching would probably be prohibitively
  2269. expensive.
  2270. 0Compiled PowerPC code is stored in files with a 
  2271. Monaco
  2272. .ppcl
  2273. )#% extension. By running PowerLisp on a
  2274. ZWPower Mac, and compiling your lisp code to native Power Mac code, you will get the best
  2275. $performance possible from PowerLisp.
  2276. PowerLisp 2.0 Modifications
  2277. The special forms 
  2278. labels 
  2279. )1"are now supported by the compiler.
  2280. Palatino
  2281. PowerLisp User Guide
  2282. PowerLisp Assembler
  2283. *:_The assembler was designed primarily to service the compiler. It is, however, useful in its own
  2284. dright. It could be used as a vehicle for accessing toolbox calls and other system services which are
  2285. ]not otherwise provided. Little support for this is included, however, in the current release.
  2286. [Not all 68000 instructions are implemented, although the most common ones are. The complete
  2287. Csource to the assembler is included with this release, in the file 
  2288. Monaco
  2289. assembler_68k.lisp
  2290. . The
  2291. Z]assembler is written in Common Lisp, and all assembler instructions are implemented as macros
  2292. Yin the assembler package. These macros automatically expand into the machine code for the
  2293. Yinstruction when expanded by the assembler in the appropriate context. This simple design
  2294. ]allows the easy addition of assembler macros. Many sample macros can be seen in the assembler
  2295. [source. 68000 instructions which are not implemented could be added by anyone who wanted to
  2296. Stake the time. I plan to expand the assembler and add a foreign function interface.
  2297. PowerPC
  2298. TNot all PowerPC instructions are implemented, although the most common ones are. The
  2299. Kcomplete source to the assembler is included with this release, in the file
  2300. assembler_ppc.lisp
  2301. )~@.  The above comments (regarding the 68k assembler) apply to the
  2302. PowerPC assembler as well.
  2303. Palatino
  2304. PowerLisp User Guide
  2305. PowerLisp Disassembler
  2306. Monaco
  2307. disassemble
  2308. )MG function can be used to disassemble a compiled function to examine its
  2309. Z]machine code. It will disassemble functions which have been compiled by the Lisp compiler, as
  2310. bwell as built-in functions which have been compiled by the C++ compiler. It isn
  2311. t fancy, but it is
  2312. ]pretty useful. For compiled Common Lisp functions, the disassembler is good at displaying the
  2313. &names of called functions (targets of 
  2314. 1 instructions). Compiled C++ functions often call
  2315. Z¥functions which the disassembler does not know about, so you may get some incorrect function
  2316. Nnames. Normally you will only be disassembling compiled Common Lisp functions.
  2317. YThe PowerLisp 2.0 disassembler will disassemble PowerPC code when running on a Power Mac,
  2318. ,or 68k code when running on a 68k Macintosh.
  2319. Palatino
  2320. PowerLisp User Guide
  2321. Linking and Debugging
  2322. *:ZPowerLisp features an incremental linker which immediately link in functions when they are
  2323. Zcompiled or loaded. Whenever a function is replaced by a new function, whether compiled or
  2324. binterpreted, all compiled branches to that function are correctly routed to the new function. This
  2325. ais done via a distributed jump table which is managed by the linker. Interpreted functions have a
  2326. ¥jump table entry which will cause a branch into the interpreter whenever a compiled function
  2327. ^tries to call them. The interpreter can then, based on call stack information, determine which
  2328. dfunction was intended, and then evaluate it. If that function is later compiled, a direct jump to it
  2329.  replaces the interpreter branch.
  2330. _Debugging facilities are rudimentary. Some non-standard functions are included which will trace
  2331. bthe evaluation call stack or the compiled function call stack. Unfortunately there is not a single
  2332. *integrated function which will trace both.
  2333. ]While a Common Lisp program is executing, the call stack may in fact have an interpreted lisp
  2334. `function, which calls a compiled lisp function, which calls a compiled C++ function, which calls
  2335. aan interpreted Lisp function, ad nauseam. This situation is quite common, in fact. Debugging is a
  2336. Zlittle easier if all the functions you are debugging are compiled, or all are interpreted.
  2337. [Trace and untrace functions are useful for interpreted code. They are not of much value for
  2338. 0compiled code. I use the non-standard functions 
  2339. Monaco
  2340. address
  2341.  and 
  2342. exec-address
  2343.  a lot to get
  2344. Z.addresses which I can then examine in MacsBug.
  2345. A function called 
  2346. error-stack
  2347. )M; is included to help with debugging. If your program aborts
  2348. Z7with an error message, you may immediately invoke this:
  2349. (error-stack)
  2350. `This will print a processor dump of the top ten stack frames when the error occurred. This works
  2351. ^better for compiled-code than for interpreted code, because all the functions on the processor
  2352. estack will be interpreter functions in interpreted mode (as opposed to your functions). It still will
  2353. "print useful information, however.
  2354. 7To see the interpreter stack, you may use the function 
  2355. dump-lisp-stack
  2356. . This must be
  2357. ZZinvoked prior to an error occurring, however. Typically you can put it into the code of an
  2358. ?interpreted function. When that function executes, the call to 
  2359. dump-lisp-stack
  2360.  will cause
  2361. Zbthe top interpreter stack frames to get displayed, along with the associated lexical environments.
  2362. Palatino
  2363. PowerLisp User Guide
  2364. Memory Usage
  2365. *:aLike most Lisp systems, PowerLisp likes to have quite a bit of memory. Garbage collection will be
  2366. Yinvoked frequently if you are short on memory, and that will cause performance to suffer.
  2367. YAt startup, PowerLisp sets aside enough memory to hold the application
  2368. s code segments in
  2369. Xmemory, as well as some memory for operating system overhead such as windows, resources,
  2370. `etc. Approximately 300k bytes of RAM are set aside for the editor to hold text. About 25% of the
  2371. Wremaining memory is given to the stack. This allows a large amount of recursion without
  2372. [overflowing the stack. The rest is allocated as a large non-relocatable block which is then
  2373. (managed by the PowerLisp memory manager.
  2374. ZThe PowerLisp memory manager allocates about 50% of the heap to Lisp nodes. These are each
  2375. ^10 bytes in size (12 bytes on Power Macs), and consist of two pointers and flag and type bits.
  2376. bThey are used to store cons cells, integers, floating point numbers, ratios, and characters. Other
  2377. ¥Lisp data types require larger blocks. All larger items and variable sized memory blocks are
  2378. ]allocated by the other 50% of the heap. This strategy has proven to provide good performance.
  2379. ^Fixed size cons nodes can be allocated very quickly. The garbage collector only keeps track of
  2380. <these nodes, or objects which are referenced by these nodes.
  2381. In a typical scenario:
  2382. Monaco
  2383. PowerLisp partition size:
  2384. 4096K bytes (4 megabytes)
  2385. System use:
  2386.  600K
  2387. Editor heap:
  2388.  300K
  2389. Stack:
  2390.  800K
  2391. Nodes:
  2392. 1200K (around 125,000 nodes)
  2393. Variable sized heap objects:
  2394. 1200K (used by Lisp system)
  2395. ZYVariable sized heap objects include compiled Lisp code, vectors, arrays, text editor data
  2396. %structures, packages and hash tables.
  2397. Memory Requirements
  2398. WPowerLisp 2.0 requires at least a 4  megabyte partition. However, 5 megabytes is a more
  2399. Xreasonable minimum. If you want to use the compiler, you will need at least a 5 megabyte
  2400. bpartition. A larger partition is recommended, or else you will wait on the garbage collector a lot
  2401. Bwhile compiling. 6 megabytes is a good size for moderate projects.
  2402. Palatino
  2403. PowerLisp User Guide
  2404. Operating System Issues
  2405. *:WPowerLisp runs only with Macintosh operating systems 7.0 or later. PowerLisp multitasks
  2406. ^cooperatively with other applications, so that programs can continue running in the background
  2407. Ywhile PowerLisp programs are executing. PowerLisp programs can also run in the background
  2408. )while you are running other applications.
  2409. `PowerLisp supports the standard four Apple Events: Launch, Open, Print and Quit. It is therefore
  2410. ¥high-level event aware. It is 32-bit clean, and makes use of as much memory as you choose to
  2411. give it.
  2412. .PowerLisp is fully compatible with system 7.5.
  2413. Palatino
  2414. PowerLisp User Guide
  2415. Common Lisp Implementation
  2416. *:[The Common Lisp implementation in this release of PowerLisp is lacking in a number of ways,
  2417. ^which I will detail below. As you probably are aware, Common Lisp consists of a huge number of
  2418. _functions and data types. Rather than wait a couple more years to release this, I have tried to
  2419. binclude the most useful features of the language. As a very rough estimate, I believe this release
  2420. Wimplements about 95% of Common Lisp as specified in the first edition of  Guy Steele
  2421. Common
  2422. Lisp: The Language
  2423. 2nd edition.
  2424. Z`I would like to build a reference of what is included, because it would include a huge number of
  2425. _functions and features. Because of time constraints, however, I will have to base this document
  2426. more on what is missing from 
  2427. Common Lisp: The Language
  2428. ". While a number of things are not
  2429. Z8currently implemented, it is still a very useful system.
  2430. ¥The following section of this document covers the PowerLisp language implementation, roughly
  2431. 7in the order in which they are covered in Guy Steele
  2432. Common Lisp: The Language
  2433. , Second
  2434. Edition.
  2435. /In this document, I will refer to Guy Steele
  2436. Common Lisp: The Language
  2437. , the first edition, as
  2438. CLTL1. 
  2439. )$;The second edition of the reference will be referred to as 
  2440. CLTL2
  2441. Palatino
  2442. PowerLisp User Guide
  2443. Data Types
  2444. Characters
  2445. Symbols
  2446. Lists
  2447.     Functions
  2448. Text strings
  2449. Packages
  2450. Hash tables
  2451. Read tables
  2452. Random States
  2453. MThese data types are all implemented according to the language specification.
  2454. Numbers
  2455. ¥Integers, floating-point and ratios are implemented. PowerLisp 1.1 includes  complex numbers
  2456. band bignums (large integers). Integers are stored in 32 bits, floating-point in 64 bits and ratios
  2457. bconsist of two integers. Only one size of floating point number is provided. Large integers may be
  2458. 'any size up to your memory limitations.
  2459. Arrays
  2460. DGeneralized arrays, bit vectors and character strings are supported.
  2461. ZBit vectors and generalized arrays may be multi-dimensional, up to 7 dimensions. Character
  2462. 1strings may only be single-dimensioned (vectors).
  2463. ]Arrays of specific types (packed arrays of integers, for example) are not supported, but this
  2464. 6should largely be transparent to Common Lisp programs.
  2465. Streams
  2466. 0Streams are implemented, with a few limitations.
  2467.     Pathnames
  2468. UPathnames are just text strings currently
  2469. system independent
  2470.  path name object is
  2471. `supported. Pathname strings can represent full path names, or partial path names relative to the
  2472. ]default directory. They must be in Macintosh format, which uses colons rather than slashes to
  2473. separate directory names.
  2474. Examples of paths:
  2475. Monaco
  2476. ""VolumeName:My Directory:My File" 
  2477. ; full path
  2478. Z    "My File"
  2479. ; in current directory
  2480. ":My Subdirectory:My File"
  2481. ; in subdirectory of current
  2482. "::MyFile"
  2483. $; in parent directory (one level up)
  2484. Random States
  2485. ZThe random number package is fully implemented using the CMU library. This results in much
  2486. Wbetter randomness than the previous implementation. The random states are now readable.
  2487. Palatino
  2488. PowerLisp User Guide
  2489. Structures
  2490. JStructures are implemented according to the language standard. Some of the
  2491. ]options are not supported yet, however. List-based structures are not supported. In PowerLisp
  2492. 61.1 code which uses structures will compile correctly.
  2493. Objects
  2494. RCLOS is now included with PowerLisp. See the section on CLOS for more information.
  2495. Scope and Extent
  2496. 3PowerLisp adheres to the Common Lisp specification.
  2497. Type Specifiers
  2498. XThe Common Lisp type system conforms to CLTL2. No optimizations are currently done based
  2499. on type declarations.
  2500. Program Structure
  2501. aThis area of the language is more or less complete. This includes functions, both interpreted and
  2502. bcompiled, special forms, macros (interpreted and compiled), special variables, constants, etc. All
  2503. 'special forms are correctly recognized.
  2504. All defining constructs (
  2505. Monaco
  2506. defun
  2507. defmacro
  2508.     defstruct
  2509. defconstant
  2510. , etc.) allow the
  2511. Zdinclusion of a documentation string. This string gets stored on the property list of the symbol, and
  2512. -can be accessed as specified by the language.
  2513. [Compiled and interpreted functions can be freely intermixed in the call stack, and compiled
  2514. Xfunctions are incrementally linked into the system as soon as they are compiled or read.
  2515. Predicates
  2516. Implemented.
  2517. Control Structure
  2518. SMost of this chapter is implemented, with a few exceptions. Compiler macros and the
  2519. compiler-let
  2520. )TA form are not implemented. Some of the features which are new in 
  2521. CLTL2
  2522.   are
  2523. not implemented.
  2524. Declarations
  2525. Palatino
  2526. PowerLisp User Guide
  2527. Z]Declarations are mostly allowed but ignored by PowerLisp. In future versions of the compiler,
  2528. ¥faster code generation should be possible by paying attention to declarations. Violations of
  2529. declarations are also ignored.
  2530. In PowerLisp 1.1 and later, 
  2531. Monaco
  2532. special
  2533.  declarations 
  2534. + significant, and are correctly interpreted
  2535. and compiled.
  2536. Symbols
  2537. Implemented.
  2538. Packages
  2539. Implemented.
  2540. In PowerLisp 1.1 and later, 
  2541. defpackage
  2542. )F/ and the remaining package functions and macros
  2543. ZWhave been included. There may still be some problems with the way shadowing symbols are
  2544. ahandled, and user interaction with the shadowing facility is not supported (load time querying to
  2545. resolve ambiguities).
  2546. Numbers
  2547. ¥PowerLisp includes most of the numeric functionality specified in CLTL2. Some math functions
  2548. Nwill give an error when they encounter a large integer or complex number. The 
  2549.  are now
  2550. Z"implemented in PowerLisp 2.0. The 
  2551. boole
  2552.  function is not implemented.
  2553. Characters
  2554. All chars are standard-chars.
  2555. *-    Sequences
  2556. bThese functions are pretty complete. All sequence operations can be applied to lists, vectors, bit
  2557. vectors and character strings.
  2558. Lists
  2559. Implemented.
  2560. Hash Tables
  2561. CImplemented. Hash Tables are used internally by the package system.
  2562. Palatino
  2563. PowerLisp User Guide
  2564. Arrays
  2565. SPartially implemented. Arrays can be up to seven dimensions. Some key arguments to 
  2566. Monaco
  2567. array
  2568. )#O are not implemented.  PowerLisp 2.0 has much improved array functionality over
  2569. Z+previous versions, and most array features.
  2570. Strings
  2571. JMostly implemented. A few of these functions need to be implemented still.
  2572. Palatino
  2573. PowerLisp User Guide
  2574. Structures
  2575. [Structures can be defined and are correctly added to the type system. Some key arguments to
  2576. Monaco
  2577.     defstruct
  2578. )?Q and some slot options are not implemented yet.  PowerLisp 2.0 handles structures
  2579. ZXmuch better, more efficiently and implements more of the standard functionality than did
  2580. previous versions.
  2581. The Evaluator
  2582. NThis is the Common Lisp interpreter. Top level run-time loop features such as 
  2583.  and 
  2584.  now implemented.
  2585. Streams
  2586. cPartially implemented. This area is still a little weak and is a high priority for improvement. The
  2587. amost important features are there, however. PowerLisp 1.2 adds support for specification of read,
  2588. Bwrite or read/write access when file streams are created with the 
  2589.  function.
  2590. Input/Output
  2591. ^The Lisp reader is implemented as specified, which is not easy in an event-driven environment!
  2592. [Read macros can be defined, and are used internally for many things (check out the standard
  2593. "library and compiler source code).
  2594. Options to the 
  2595. format
  2596. )*B function are partially implemented. This needs some work still. A
  2597. ZKnumber of other features described in this chapter are not yet implemented.
  2598. BPowerLisp 2.0 supports more format options than previous versions.
  2599. Palatino
  2600. PowerLisp User Guide
  2601. File System Interface
  2602. aAs mentioned above, pathnames are just character strings currently. I intend to change this soon,
  2603. &so that a pathname object contains an 
  2604. Monaco
  2605. FSSpec
  2606. )*0 internally but can still be specified by a path
  2607. ZCstring. Using strings for pathnames is compatible with Common Lisp.
  2608. 0Some Macintosh-specific functions are available:
  2609. set-file-creator
  2610.  my-open-file "ROSA")
  2611. set-file-type
  2612.  my-open-file "EPSF")
  2613. ZaThese functions can be used to set the type and creator of any open file. An error is signaled if
  2614. :you try to call these functions on other types of streams.
  2615. /File wildcard specifiers are not yet supported.
  2616. Errors
  2617. 7Errors are implemented as exceptions (as thrown by the 
  2618. throw
  2619. )#" special form). They are typically
  2620. Z]caught at the top level. Continuable errors are not yet implemented (for want of a debugger).
  2621. _In general, all Lisp functions, both compiled and interpreted, signal errors whenever the wrong
  2622. .number or type of arguments is passed to them.
  2623. Miscellaneous Features
  2624. Compiler
  2625. .The compiler is covered in a separate section.
  2626. Documentation
  2627. 0The documentation facility is fully implemented.
  2628. Debugging tools
  2629. ZWhile compiled and interpreted functions peacefully coexist at run-time, their behavior as
  2630. -regards debugging is significant. The macros 
  2631. trace
  2632.  and 
  2633. untrace
  2634.   are implemented for
  2635. ZTinterpreted, but not compiled code. That is, you can compile a function which calls 
  2636. trace
  2637.  , but
  2638. Z<only the interpreted function calls will actually be traced.
  2639. S function is not implemented. There is no real interactive debugger. This should be
  2640. improved in a future release.
  2641. M macro is implemented, and uses the Mac
  2642. s Time Manager to produce microsecond
  2643. ZVtimings accurate to about 20 microseconds. This is very useful for performance tuning.
  2644. describe
  2645. )8Q function is only partially implemented (symbols are well supported). I intend to
  2646. improve it.
  2647. inspect
  2648. )1! function is not implemented yet.
  2649. Palatino
  2650. PowerLisp User Guide
  2651. Monaco
  2652. S function can be used to determine how much memory is available. See below for more
  2653. Z1information about memory usage. Another function 
  2654. ' invokes the garbage collector. Usually
  2655. Z"you should call it before calling 
  2656.     Helvetica
  2657. to get an accurate result.
  2658. + function is implemented for editing files:
  2659.  filename)
  2660. Z-causes the PowerEdit editor to open the file 
  2661. filename
  2662. )0, for editing. This is identical to using the
  2663. Open command from the editor.
  2664. The functions 
  2665. dribble
  2666.  and 
  2667. apropos
  2668.  are not implemented.
  2669. Environmental Inquiries
  2670. These are not yet implemented.
  2671. _The complete Loop facility is provided courtesy of the publicly available source code from MIT.
  2672. ]This has been tested and run both in interpreted and compiled mode and seems to work fine. It
  2673. (has not been tested thoroughly, however.
  2674. ULoop macros tend to expand into huge Common Lisp expressions, which execute slowly in
  2675. ainterpreted mode but compile into pretty tight, fast code. It is like a language unto itself, and
  2676. rather interesting.
  2677. 'The first time the system encounters a 
  2678. 3 macro, it loads the loop package. This takes a few
  2679. seconds. Subsequent uses of 
  2680. ! will not demonstrate this delay.
  2681. Pretty Printing
  2682. ^A simple pretty printing function is now included with PowerLisp. The fully cusomizable pretty
  2683. #printing functionality proposed in 
  2684. CLTL2
  2685.  is not implemented.
  2686. Palatino
  2687. PowerLisp User Guide
  2688. ]This had been added in PowerLisp 2.0. It is based on the Closette implementation in the book 
  2689. Art of the Metaobject Protocol 
  2690. ?by Gregor Kiczales, Jim des Rivi
  2691. res, and Daniel G. Bobrow. The
  2692. Z7source to this implementation is included (in the file 
  2693. Monaco
  2694.     clos.lisp
  2695.  in the 
  2696. library
  2697.  folder). This
  2698. ZSimplementation of CLOS is a subset of the full CLOS specification (as described in 
  2699. CLTL2
  2700. ). The
  2701. ZNfollowing limitations apply (according to Chapter 1, section 1.1 of the book):
  2702. 6All the essential features of full CLOS are included: 
  2703. classes
  2704. , which inherit
  2705. ~1structure and behavior from one or more classes, 
  2706.     instances
  2707.  of classes, which are
  2708. ~&created, initialized and manipulated; 
  2709. generic functions
  2710. , whose behavior depends
  2711. ~6on the classes of the arguments supplied to them; and 
  2712. methods
  2713.  which define the
  2714. ~Sclass-specific behavior and operations of generic functions. The major restrictions
  2715. "of the simplified dialect include:
  2716. No class redefinition. 
  2717. )e9Full CLOS allows the definition of a class to be changed;
  2718. ~Pthe changes are propagated to its subclasses and to extant instances. The subset
  2719. 'does not allow classes to be redefined.
  2720. No method redefinition. 
  2721. )r2Full CLOS allows methods to be redefined, with the
  2722. ~Jnew definition completely replacing the old one. The subset does not allow
  2723. methods to be redefined.
  2724. $No forward-referenced superclasses. 
  2725. )Full CLOS allows classes to be references
  2726. ~Pbefore they are defined. One class can be defined in terms of another before the
  2727. Jsecond has been defined. These forward references are not permitted in the
  2728. subset.
  2729. &Explicit generic function definitions.
  2730. % Full CLOS allows the definition of a
  2731. ~Pgeneric function to be inferred from the method definitions. The subset requires
  2732. 8that a generic function be explicitly introduced with a 
  2733. defgeneric
  2734.  form before
  2735. any methods are defined on it.
  2736. "Standard method combination only. 
  2737. 'Full CLOS provides a powerful mechanism
  2738. ~Nfor user control of method combination. The subset defines only simple "demon"
  2739. 2combination (primary, before- and after- methods).
  2740.  specializers.
  2741. );7 Full CLOS allows methods to be specialized not only to
  2742. ~Sclasses, but also to individual objects. The subset restricts method specialization
  2743. to classes.
  2744. !No slots with :class allocation. 
  2745. *Full CLOS supports slots allocated in each
  2746. ~Ninstance of a class, and slots which are shared across all of them. The subset
  2747.  defines only per-instance slots.
  2748. (Types and classes not fully integrated. 
  2749. #Full CLOS closely integrates Common
  2750. ~LLisp types and CLOS classes. It is possible to define methods specialized to
  2751. primitive classes (e.g. 
  2752. symbol
  2753. )$&) and structure classes (defined with 
  2754.     defstruct
  2755. ~JThe subset defines classes for the primitive Common Lisp types but not for
  2756. structure classes.
  2757. Minimal syntactic sugar. 
  2758. )s4A number of convenience macros and special forms are
  2759. ~*not included in the subset. These include 
  2760. with-slots, generic function,
  2761. ~ generic-flet and generic-labels.
  2762. Palatino
  2763. PowerLisp User Guide
  2764. ZEThe book is highly recommend if you want to work with CLOS. The file 
  2765. Monaco
  2766. clos-tests.lisp,
  2767. Z^included with PowerLisp 2.0 in the examples folder, contains most of the code samples from the
  2768. .book, and is useful for seeing how CLOS works.
  2769. Conditions
  2770. Not implemented (
  2771. CLTL2
  2772.  feature).
  2773. Series
  2774. Not implemented (
  2775. CLTL2
  2776.  feature).
  2777. Palatino
  2778. PowerLisp User Guide
  2779. Non-standard Extensions
  2780. *:¥Here are some non-standard functions and variables which are included in PowerLisp and which
  2781. you may find useful.
  2782. Monaco
  2783. *top-level*
  2784. variable
  2785. ZDThis should normally be bound to the top-level read-eval-print loop.
  2786. address
  2787. object
  2788. function
  2789. ZEReturns the machine address of  the lisp object that is its argument.
  2790. exec-address
  2791. compiled-function
  2792. [function]
  2793. Z^Returns the machine execution address of a compiled function. If a symbol which has a compiled
  2794. ZZfunction associated with it is passed, that symbol
  2795. s jump table address (maintained by the
  2796. bincremental linker) is returned. Note that this is different from the address of the function, but
  2797. ]normally just represents a jump instruction to the other address. This function is useful for
  2798. Fdebugging compiled code (in combination with a debugger like MacsBug).
  2799. function-definition
  2800.  function 
  2801. [function]
  2802. Z¥Returns the lambda expression of an interpreted function. This function is superseded by the
  2803. ANSI Common Lisp function 
  2804. function-lambda-expression
  2805. , which is implemented in
  2806. Z_PowerLisp 1.1 and later, and returns the lambda expression as the first of three return values.
  2807. [function]
  2808. ZdExplicitly invokes the garbage collector. This is more or less a standard language extension, but is
  2809. 8not required by the standard. Use it before calling the 
  2810.  function for a more accurate
  2811. estimate of space remaining.
  2812. package-hash-table
  2813. package
  2814. function
  2815. ZLReturns the hash table used by the passed package. This is sometimes useful.
  2816. print-function
  2817. interpreted-function
  2818. function
  2819. Prints the passed function.
  2820. function
  2821. function
  2822. Z^Exits interpreter. You probably never want to call these. Just exit the program instead (using
  2823. menu Quit command).
  2824. hash-table-misses
  2825. hash-table
  2826. function
  2827. Z`Provides statistics on hash-table effectiveness. Returns the number of times a hash-table lookup
  2828. attempt has 
  2829. missed
  2830.  (failed).
  2831. hash-table-hits 
  2832. hash-table
  2833. function
  2834. Palatino
  2835. PowerLisp User Guide
  2836. Z`Provides statistics on hash-table effectiveness. Returns the number of times a hash-table lookup
  2837. attempt has 
  2838.  (succeeded).
  2839. Monaco
  2840. set-file-type 
  2841. file-stream type-string
  2842. function
  2843. ZiSets the Finder type for the open file. Signals an error if a stream which is not a file is passed to it.
  2844. Example:
  2845. (setq f (open "myfile"))
  2846. set-file-type
  2847. )[+ f "EPSF") ; sets the file's type to 'EPSF'
  2848. set-file-creator
  2849. file-stream creator-string
  2850. function
  2851. ZhSets the Finder creator for the open file. Signals an error if a stream which is not a file is passed to
  2852. Example:
  2853. (setq f (open "myfile"))
  2854. set-file-creator
  2855.  f "ROSA")
  2856. )b"; set the file's creator to 'ROSA'
  2857. dump-lisp-stack
  2858. function
  2859. ZbThis function prints a trace of the evaluator stack. It will only include information on evaluated
  2860. (function calls (not compiled functions).
  2861. %stack-trace
  2862. function
  2863. Z^This function returns a list of information on each processor stack frame. This is useful when
  2864. `debugging compiled functions. Evaluated function calls will show up as calls to the interpreter.
  2865. *stack-trace*
  2866. variable
  2867. ZeAfter any error, this global variable is automatically left bound to a list of stack frames that were
  2868. `in effect at the time of the error (as obtained with %stack-trace). This is very useful. Use the
  2869. expression:
  2870. (error-stack)
  2871. &after an error to see the stack trace.
  2872. error-stack
  2873. function
  2874. ZaThis function may be used to print a dump of the processor stack state at the time the last error
  2875. Rwas encountered. This function can be used instead of the expression listed above.
  2876. Palatino
  2877. PowerLisp User Guide
  2878. New Features
  2879. New Features in PowerLisp 2.0
  2880. ¥The biggest new feature in PowerLisp 2.0 is the addition of CLOS support. See the section on
  2881. CLOS for details.
  2882. ]A Preferences dialog has been added. It lets you control how much time is given to background
  2883. _processes while Lisp programs are running. It also lets you choose between having output all go
  2884. Tto the Worksheet vs. output will go to the window that last executed a Lisp command.
  2885. ^A registration screen has been added at startup. If you have registered, you can disable it by
  2886. Zentering your name and product registration code in the Registration dialog. Contact Roger
  2887. ;Corman to receive your code if you have already registered.
  2888. dIn PowerLisp 2.0, structures, arrays and strings are all stored more efficiently. Arrays and strings
  2889. Hare more consistent and more closely adhere to the Common Lisp standard.
  2890. ^The Common Lisp variables +,  ++, *, **, etc. are now properly bound during top loop execution
  2891. )as specified in the Common Lisp standard.
  2892. TA number of other Common Lisp functions which were missing are now implemented (I am
  2893. Wsorry to not be more specific here). Overall, PowerLisp 2.0 is much closer to the CLTL2
  2894. 5specification than any previous version of PowerLisp.
  2895. [A serious bug which prevented PPC compiled code from working on certain Power Macs (related
  2896. Xto the memory setup) has now been fixed. This generally caused a crash during startup on
  2897. ^affected machines. The fix was released last summer as PowerLisp 1.2.1d. These changes are now
  2898. included in PowerLisp 2.0.
  2899. New Features in PowerLisp 1.2
  2900. QThe most important new feature of PowerLisp 1.2 is native Power Mac execution and
  2901. ^compilation. For 68k users, the new tagged pointer architecture allows much better handling of
  2902. Rintegers, which reduces memory requirements and improves speed. Future versions of
  2903. ;PowerLisp should gain even more from this new architecture.
  2904. [A number of bugs have been fixed, and new functions implemented. The most important bug fix
  2905. [has to do with floating point number comparisons, which now work correctly. My apologies to
  2906. ^those of you who scratched your heads over this one. It was actually a one character typo in a
  2907. /routine called by all the comparison operators.
  2908. Monaco
  2909. Y function pays attention for whether files are read-only, write-only, etc. This mat cause
  2910. Zasome of your code to break if it relied on PowerLisp 1.1's default to read/write permission. Read
  2911. Z9only is not the default, as per the Common Lisp standard.
  2912. DPrinting of symbols and strings now correctly pays attention to the 
  2913. *print-escape*
  2914. Z    variable.
  2915. Palatino
  2916. PowerLisp User Guide
  2917. ZVThe documentation function is enhanced for version 1.2. Asking for documentation for a
  2918. ZCommon Lisp symbol now automatically brings up the appropriate text from Guy Steele's book
  2919. ^Common Lisp the Language (thanks to Digital Press for allowing electronic distribution). Also,
  2920. Othis book as well as PowerLisp documentation can be browsed from a hierarchical
  2921. Documentation menu.
  2922. Palatino
  2923. PowerLisp User Guide
  2924. Troubleshooting
  2925. PowerLisp Startup Process
  2926. aWhen PowerLisp launches, it first boots the kernel, which sets up all the internal heaps and data
  2927. astructures, including initializing symbols in the symbol tables, and loading necessary code. Once
  2928. -the kernel is successfully started, the file 
  2929. Monaco
  2930. stdlib.lisp
  2931. )B' is searched for in the Library folder,
  2932. Z^which is expected to be a subfolder of the folder the application was launched from. This file
  2933. ]normally contains code which will allow compiled lisp files to be loaded (the kernel does not
  2934. Dhave this feature built in), and then proceeds to load all the file 
  2935. cl.lisp
  2936. . This file loads a
  2937. Z^number of other startup files as well. Compiled versions of these files are searched for first
  2938. .fasl 
  2939. ppcl 
  2940. Oextension) but if these are not found the loader will attempt to load copies of
  2941. these files with a 
  2942. .lisp 
  2943. extension. Any files with a 
  2944. .lisp 
  2945. )$"extension will run interpretively,
  2946. Z7and therefore somewhat slower, than the compiled files.
  2947. dIf anything goes wrong during the startup process, the system will not be left in a stable state. It
  2948. cmay appear to perform correctly, but will likely crash on the first evaluation error (the evaluator
  2949. cerror handler gets set up relatively late in the boot process). Generally you will get some type of
  2950. Eerror message in the Worksheet if anything went wrong during startup.
  2951. `A typical problem is that not enough memory is available to load all the modules that need to be
  2952. 'loaded. If you get a message that says 
  2953. Can't copy compiled function
  2954.  this actually
  2955. ZHmeans you are low on memory. Other low memory messages are less cryptic.
  2956. Palatino
  2957. PowerLisp User Guide
  2958. Z$What To Do If PowerLisp Will Not Run
  2959. ]Some users have reported that PowerLisp freezes during startup, giving them no error message.
  2960. [There was a known bug in PowerLisp 1.2, fixed in 2.0, which cause a crash during startup on
  2961. YMacs with virtual memory turned on (including RamDoubler) or Macs with >32 megs of RAM. A
  2962. adevelopment fix (PowerLisp 1.2.1d) was released to fix this problem, but some users still seem to
  2963. Shave problems. If you have problems running PowerLisp, here are some things to try.
  2964. )Increase the amount of memory available. 
  2965. %The minimum that is specified in the 
  2966. Monaco
  2967. U box may not be enough to start up on every Macintosh configuration. Increase this by
  2968. lTone or two megabytes and try again. If you are then able to start PowerLisp, you can
  2969. Uexperiment with the value to get the right minimum for your system. If you are low on
  2970. Smemory, try using RamDoubler (from Connectix) or Macintosh Virtual Memory (from the
  2971. YMemory Control Panel). It is not recommended that you run PowerLisp in a partition larger
  2972. Wthan the physical RAM in your system. If you try this, performance will probably not be
  2973. good!
  2974. Remove the compiled libraries.
  2975. 7 If increasing memory doesn't help, you can try running
  2976. l.interpretively. You do this by moving all the 
  2977. .fasl
  2978.  (on 68k) or 
  2979. .ppcl
  2980.  (on Power Mac) files
  2981. lUfrom the library folder. Put them in a different folder for safekeeping. Then restart
  2982. ZPowerLisp. Normally this will allow PowerLisp to run, although performance will be slower.
  2983. Run emulated on Power Mac. 
  2984. ;Another option, for Power Mac users, is to run PowerLisp in
  2985. l[68k emulated mode. You can do this by using ResEdit to edit a copy of PowerLisp 2.0. Do not
  2986. Qmodify your original. In ResEdit, open the PowerLisp 2.0 application. Delete the 
  2987. 'cfrg'
  2988. lZresource. Save the application, and restart it. This will cause PowerLisp to run emulated,
  2989. using the compiled 
  2990. .fasl 
  2991. )$568k libraries. Performance may be better than running
  2992. interpreted (above). 
  2993. )ZAIf you try this, please do not redistribute this modified copy of
  2994. PowerLisp.
  2995. Disable extensions. 
  2996. )[GIf none of the above works, try rebooting your Macintosh with the shift
  2997. lUkey held down. This will disable extensions. See if this allows you to run PowerLisp.
  2998. Z^If none of the above works, please put together a mail message containing whatever information
  2999. Xabout your system you can, as well as the version of PowerLisp you are using, and send a
  3000. message to 
  3001. PowerLisp@aol.com
  3002. )f<. We cannot guarantee we will be able to help non-registered
  3003. Z¥users, but if at all possible we will try to contact you with some advice. In any case, your
  3004. Imessages will help us track down problems and fix them in later releases.
  3005. Palatino
  3006. PowerLisp User Guide
  3007. Notes
  3008. *%^I would like to thank my wife, Frances, for her assistance with this documentation and for her
  3009. patience and encouragement.
  3010. 7I would also like to thank Guy Steele Jr., whose books 
  3011. Common Lisp: The Language, 
  3012. ZYeditions, are a constant source of assistance and amusement (in the most positive sense).
  3013. `PowerLisp 2.0 also includes the optimized backquote facility from the second edition, as well as
  3014. #some other functions from the book.
  3015. SJim Bisso has been a valuable resource to me and helped with PowerLisp development.
  3016. Peter Norvig's text 
  3017. )UHParadigms of Artificial Intelligence Programming: Case Studies in Common
  3018. Lisp 
  3019. Ntaught me a lot about the language and his many sample programs were useful in
  3020. ZWdebugging the interpreter and compiler. I highly recommend it to anyone learning Common
  3021. Lisp.
  3022. [Acknowledgments to MIT for their Loop facility source code, which I have included with this
  3023. package.
  3024. XAcknowledgments to CMU for their Random facility source code, which I have included with
  3025. this package.
  3026. _Acknowledgments to Gregor Kiczales, Jim des Rivi
  3027. res, and Daniel G. Bobrow, for their excellent
  3028. book 
  3029. "The Art of the Metaobject Protocol
  3030. 4The source code from this book is the basis for  the
  3031. PowerLisp 2.0 CLOS capability.
  3032. ^Thanks to Ken Long for his improved color icons, which are included in the released version of
  3033. PowerLisp 1.2.
  3034. YThanks to MetroWerks, for building the best C++ programming environment I have ever used:
  3035. QCodeWarrior. The PowerLisp environment and kernel are compiled using CodeWarrior.
  3036. :JK634U<
  3037. )#    AQ
  3038. 75I8M'9H
  3039. p 0p`P
  3040. '#)$75
  3041. !(1+*
  3042.  @@H8H
  3043. xTPP`
  3044. xP(H`X
  3045. '01-&2(
  3046. ( @$$
  3047.     temp.0001
  3048. Roger Corman
  3049. Roger Corman
  3050. Microsoft Word
  3051. +OFST
  3052. ;{{{{
  3053. <ssssss
  3054. Gcccc
  3055. Hcccc
  3056. Icccccc
  3057. Jcccc11
  3058. Kcc11
  3059. Lcc11cc
  3060. Mcc1111
  3061. Ncc11
  3062. ORRRRRR
  3063. QBBBBBB
  3064. _11cc
  3065. `11cc
  3066. a11cccc
  3067. b11cc11
  3068. c1111
  3069. d1111cc
  3070. e111111
  3071. f1111
  3072. i!!!!!!
  3073.                     
  3074. Chicago
  3075. Monaco
  3076. Palatino
  3077.     Helvetica
  3078. jPREC
  3079. vPRVS
  3080.